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;

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;