select
dept_no
,no
,maxSalary
from
(
select
dept_no
,d.emp_no no
,max(salary) maxSalary
,rank() over(partition by dept_no order by salary desc) t_rank
from dept_emp d
join salaries s on d.emp_no=s.emp_no
group by dept_no,no
) t
where t.t_rank=1
order by dept_no思路:个人觉得没有想象中难,可能是题号比较小,用窗口函数对各个部门薪水排序,然后每个部门取第一个最大的就好。

京公网安备 11010502036488号