和大多数人一样,都会考虑分组group by,但是group by之后依据什么分组的,select后必须要有一样的,并且select后只能再输入函数了,因此根据题目要求group by行不通。
可以考虑子查询,找出每个部门的最大薪水。

select d2.dept_no,d2.emp_no,s2.salary as maxSalary from dept_emp d2 inner join salaries s2
on d2.emp_no = s2.emp_no
and d2.to_date = '9999-01-01'
and s2.to_date = '9999-01-01'
where s2.salary in
(
select max(s1.salary) from dept_emp d1 inner join salaries s1
on d1.emp_no = s1.emp_no
and d1.to_date = '9999-01-01'
and s1.to_date = '9999-01-01'
and d2.dept_no = d1.dept_no
)
order by d2.dept_no;