这道题 考察的是多表查询和窗口函数 先将dept_emp和salaries进行左外链接 得到 每个部门员工薪水

	a.emp_no,
	a.dept_no,
	b.salary
FROM
	dept_emp a
	LEFT JOIN salaries b ON a.emp_no = b.emp_no

得到结果如下 alt

然后使用窗口函数 dense_rank()窗户函数进行排名排序,分组是dept_no,按照salary进行降序排序

SELECT
	a.emp_no,
	a.dept_no,
	b.salary,
	dense_rank() over(partition by a.dept_no order by b.salary desc) as rank1
FROM
	dept_emp a
	LEFT JOIN salaries b ON a.emp_no = b.emp_no

得到 按照部门分类的薪资排序表 如图alt 然后子查询这个表,将rank1=1的筛选出来即可

select
a.dept_no,
a.emp_no,
a.salary as maxSalary
from 
(SELECT
	a.emp_no,
	a.dept_no,
	b.salary,
	dense_rank() over(partition by a.dept_no order by b.salary desc) as rank1
FROM
	dept_emp a
	LEFT JOIN salaries b ON a.emp_no = b.emp_no)a
where rank1=1
order by dept_no

如图 alt