SELECT department,employee_name,salary
FROM(
SELECT department,employee_name,salary,
RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS rk
FROM employees
) AS ranked_employees
WHERE rk <= 2
ORDER BY department ASC,salary DESC
此题ez,题目指定用窗口函数解题那就用RANK函数分组排序后选出rk<=2的作为每个部门前二名然后排序输出就好了

京公网安备 11010502036488号