# 1.获取每个部门【按部门聚合】中薪水最高的【用函数max()】员工相关信息,
# 2.给出dept_no, emp_no以及其对应的salary,
# 3.按照部门编号dept_no升序排列
# 思路一:使用where的子查询做筛选,子查询中嵌套表连接
/*
select d.dept_no, d.emp_no, salary
from dept_emp d join salaries s on d.emp_no = s.emp_no
where salary in (select max(salary) from dept_emp d join salaries s on d.emp_no = s.emp_no group by d.dept_no)
order by d.dept_no;
*/
# 思路二:使用from的子查询+rank窗口函数,最后rk=1做筛选
select rk.dept_no, rk.emp_no, salary
from (
select d.dept_no, d.emp_no, salary, rank()over(partition by d.dept_no order by s.salary desc) as posn
from dept_emp d join salaries s on d.emp_no = s.emp_no) as rk
where rk.posn = 1
order by rk.dept_no