SELECT
  dept_no,
  emp_no,
  salary--外查询
FROM (
  -- 子查询:给每个部门的员工按薪资降序排名
  SELECT
    d.dept_no,
    d.emp_no,
    s.salary,
    -- 按部门分组,薪资降序排序,相同薪资会有相同排名(如需唯一排名用 ROW_NUMBER())-先运行子查询
    RANK() OVER (PARTITION BY d.dept_no ORDER BY s.salary DESC) AS salary_rank-select后面跟窗口函数
  FROM dept_emp d
  JOIN salaries s 
    ON d.emp_no = s.emp_no
  -- 筛选当前在职的员工和当前有效的薪资(避免历史数据干扰)
  WHERE d.to_date = '9999-01-01' 
    AND s.to_date = '9999-01-01'
) AS ranked_emp
-- 只保留部门内排名第一的员工(薪资最高)
WHERE salary_rank = 1--子查询中降低第一名的
ORDER BY dept_no ASC; -- 按部门编号升序排列