select
        department,
        employee_name,
        salary
from (
    select
        *,
        rank() 
        over(partition by department order by salary desc ) as rn
    from 
            employees
)a
where 
        rn < 3
order by 
        department,
        salary desc