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

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

一、问题描述

在这里插入图片描述
在这里插入图片描述

二、基本思路

思路1:使用窗口函数给每个部门员工薪水排名好后作为子表筛选
思路2:将两张表连接后,对dept_no和salary进行筛选(用where子查询进行筛选) 

三、完成代码

#思路1
select dept_no,s.emp_no,s.salary from(
select dept_no,salaries.emp_no emp_no,salary,dense_rank()over(partition by dept_no order by salary desc) r
from dept_emp left join salaries on dept_emp.emp_no =salaries.emp_no
order by salary desc) s
where s.r = 1
order by dept_no asc

#思路2
select dept_no,s.emp_no,salary maxSalary
from dept_emp de join salaries s on de.emp_no=s.emp_no 
where (dept_no,salary) in (select dept_no,max(salary)
                              from dept_emp de join salaries s 
               on de.emp_no=s.emp_no 
               where s.to_date='9999-01-01' and de.to_date='9999-01-01' 
               group by dept_no)
order by dept_no

版权声明:本文为oLengNuanZiZhi12原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。