select t.dept_no, t.emp_no, t.salary from ( select emp.dept_no, sal.emp_no, sal.salary, rank() over( partition by emp.dept_no order by sal.salary desc ) as rk from salaries as sal join dept_emp as emp on sal.emp_no = emp.emp_no ) as t where t.rk = 1 order by t.dept_no;