WITH
t1 AS (
SELECT 
    *,
    RANK() OVER(PARTITION BY department ORDER BY salary DESC) AS rk
FROM employees
)

SELECT
    department,employee_name,salary
FROM t1
WHERE rk <= 2
ORDER BY department,salary DESC;