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

思路:个人觉得没有想象中难,可能是题号比较小,用窗口函数对各个部门薪水排序,然后每个部门取第一个最大的就好。