1.先 inner join 两张表;
2.select 题目需要的字段,用窗口函数 dense_rank() 根据 dept_no 分组,然后倒序给 salary 排名
3.最外层常规 select 出需要字段,where 条件为 ranking=1,则为每个部门薪水最高的员工记录。
select t.dept_no
,t.emp_no
,t.salary as maxSalary
from
(select dept_emp.dept_no
,dept_emp.emp_no
,salaries.salary
,dense_rank() over(partition by dept_emp.dept_no order by salaries.salary desc ) as ranking
from dept_emp
inner join salaries
on dept_emp.emp_no=salaries.emp_no) t
where t.ranking = 1
京公网安备 11010502036488号