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