select department,employee_name, salary
from(
select department,employee_name, salary,rank()over(partition by department order by salary desc) as rn
from employees
)t
where rn<=2
order by department  , salary desc

rank有相同排名