select da.dept_no,da.emp_no,da.salary
from (
    select d.dept_no,d.emp_no,s.salary,rank()over(partition by d.dept_no order by s.salary desc) r
    from dept_emp d left join salaries s on d.emp_no=s.emp_no
    ) da #窗口函数建立新字段,子查询查询新表格
where r=1

涉及到既要分组聚合又要取到非聚合字段,最好、最简洁的办法就是用 子查询+窗口函数 。