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