知识点
- 使用窗函数开窗,将两个表进行连接按部门进行分组排序,第一名为部门薪水最高员工
- 本题不可使用group by having进行编写原因还需再分析
代码
select t.dept_no, t.emp_no, t.salary maxSalary
from (
select d.dept_no, d.emp_no, s.salary, rank()over(PARTITION by dept_no order by salary desc) srank
from dept_emp d
join salaries s
on d.emp_no = s.emp_no
and d.to_date = '9999-01-01'
and s.to_date = '9999-01-01'
)t
where t.srank = 1