select department,employee_name,salary
from(
    select department,employee_name,salary,row_number() over(partition by department order by salary desc) as rk
    from employees
) temp
where rk<=2
order by department,salary desc;