看到这个题目第一眼首先想到做一个中间表:
部门号,员工号,薪水,薪水排名

然后在此基础上取薪水排名第一的信息,所以既然是排名那就是考察窗口函数:

select dept_no, emp_no,salary maxSalary 
from 
(select a.dept_no,a.emp_no,salary,row_number() over(partition by dept_no order by salary desc) rn 
 from dept_emp a join salaries b on a.emp_no = b.emp_no) c
where rn = 1
order by dept_no