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