Zuerst müssen Sie das maximale Gehalt für jede Abteilung erhalten:
SELECT department, max(salary) as max_salary
FROM test
GROUP BY department
dann können Sie diese Unterabfrage wieder mit der Testtabelle verbinden:
SELECT t.*
FROM
test t INNER JOIN (
SELECT department, max(salary) as max_salary
FROM test
GROUP BY department
) d ON t.department=d.department AND t.salary=d.max_salary