获取每个部门中当前员工薪水最高的相关信息

个人网站

首发于公众号小肖学数据分析

描述

有一个员工表dept_emp简况如下:

有一个薪水表salaries简况如下:

获取每个部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary,按照部门编号dept_no升序排列,以上例子输出如下:

解题思路:

1、获取每个部门最高薪水的员工

2、对部门的薪水进行排序,利用rank() over() ,对薪水降序排列,取第一条

3、部门编号dept_no升序排列

-- 创建测试数据drop table if exists `dept_emp` ;drop table if exists `salaries` ;CREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_no` char(4) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`dept_no`));CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`from_date`));INSERT INTO dept_emp VALUES(10001,'d001','1986-06-26','9999-01-01');INSERT INTO dept_emp VALUES(10002,'d001','1996-08-03','9999-01-01');INSERT INTO dept_emp VALUES(10003,'d002','1996-08-03','9999-01-01');INSERT INTO dept_emp VALUES(10004,'d002','1996-08-03','9999-01-01');INSERT INTO dept_emp VALUES(10005,'d002','1996-08-03','9999-01-01');INSERT INTO salaries VALUES(10001,88958,'2002-06-22','9999-01-01');INSERT INTO salaries VALUES(10002,72527,'2001-08-02','9999-01-01');INSERT INTO salaries VALUES(10003,92527,'2001-08-02','9999-01-01');INSERT INTO salaries VALUES(10004,92527,'2001-08-02','9999-01-01');INSERT INTO salaries VALUES(10005,52342,'2001-08-02','9999-01-01');

查询脚本

SELECTdept_no,emp_no,salaryFROM(SELECTb.dept_no,b.emp_no,a.salary,rank() over ( PARTITION BY b.dept_no ORDER BY a.salary DESC ) rtFROMsalaries aINNER JOIN dept_emp b ON a.emp_no = b.emp_no) aWHERErt = 1order by dept_no

公众号回复加油即可获取PDF版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/193927.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NSSCTF第13页(2)

[HNCTF 2022 Week1]Challenge__rce 提示?hint 访问看到了源码 <?php error_reporting(0); if (isset($_GET[hint])) { highlight_file(__FILE__); } if (isset($_POST[rce])) { $rce $_POST[rce]; if (strlen($rce) < 120) { if (is_string($rce…

比Postman强在哪里

Postman的受众对象主要是广大开发人员&#xff0c;调测使用&#xff0c;它并不能完全满足专业测试人员需求&#xff0c;而自动化测试平台可以 1&#xff0c;Postman&#xff0c;Jmter是单机版软件&#xff0c;类似打游戏你和电脑PK&#xff0c;而很多时候是要联网和其他人团队作…

Go 语言中切片的使用和理解

切片与数组类似&#xff0c;但更强大和灵活。与数组一样&#xff0c;切片也用于在单个变量中存储相同类型的多个值。然而&#xff0c;与数组不同的是&#xff0c;切片的长度可以根据需要增长和缩小。在 Go 中&#xff0c;有几种创建切片的方法&#xff1a; 使用[]datatype{val…

Python 如何实现备忘录设计模式?什么是备忘录设计模式?Python 备忘录设计模式示例代码

什么是备忘录&#xff08;Memento&#xff09;设计模式&#xff1f; 备忘录&#xff08;Memento&#xff09;设计模式是一种行为型设计模式&#xff0c;用于捕获一个对象的内部状态&#xff0c;并在对象之外保存这个状态&#xff0c;以便在需要时恢复对象到先前的状态。这种模…

R语言的入门学习

目录 准备工作导入csv数据集选择前200行作为数据集展示数据集的前/后几N行宏观分析删除缺失值构建直方图导出为图片 R语言常见图像类型例1&#xff1a;散点图例2&#xff1a;散点矩阵图 准备工作 安装教程&#xff1a; R语言和RStudio的下载安装&#xff08;非常简便舒适&…

mysql优化之explain 以及 索引优化

Mysql安装文档参考&#xff1a;https://blog.csdn.net/yougoule/article/details/56680952 Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句&#xff0c;分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字&#xff0c;MySQL 会在查询上设…

MattML

方法 作者未提供代码

day07_数组初识

数组的概述 数组就是用于存储数据的长度固定的容器&#xff0c;保证多个数据的数据类型要一致。 数组适合做一批同种类型数据的存储 数组是属于引用数据类型&#xff0c; 数组变量名中存储的数组在内存中的地址信息。 数组中的元素可以是基本数据类型&#xff0c;也可以是引用…

Linux | 信号

目录 前言 一、信号基础概念 1、生活中的信号 2、Linux中的信号 二、信号的产生 1、接口介绍 2、信号产生的方式 &#xff08;1&#xff09;终端按键的方式产生信号 &#xff08;2&#xff09;系统调用接口 a、kill b、raise c、abort &#xff08;3&#xff09…

思维模型 鲶鱼效应

本系列文章 主要是 分享 思维模型 &#xff0c;涉及各个领域&#xff0c;重在提升认知。激发竞争&#xff0c;促进创新。 1 鲶鱼效应的应用 1.1 鲶鱼效应在组织管理中的应用 美国通用汽车公司是世界上最大的汽车制造企业之一&#xff0c;它曾经面临着生产效率低下、员工缺乏积…

IntelliJ IDEA 2023 v2023.2.5

IntelliJ IDEA 2023是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;为开发人员提供了许多特色功能&#xff0c;以下是其特色介绍&#xff1a; 新增语言支持&#xff1a;IntelliJ IDEA 2023新增对多种编程语言的支持&#xff0c;包括Kotlin、TypeScript、…

如何将 Docsify 项目部署到 CentOS 系统的 Nginx 中

文章目录 第一步&#xff1a;准备 CentOS 服务器第二步&#xff1a;安装 Node.js 和 Docsify第三步&#xff1a;初始化 Docsify 项目第四步&#xff1a;本地预览 Docsify 项目第五步&#xff1a;配置 Nginx 服务器第六步&#xff1a;重启 Nginx 服务器拓展&#xff1a;使用 HTT…