Сначала попробуйте сами: на собеседовании подсказки не будет.
Сначала агрегат: сумма зарплат по подразделению. Поверх агрегата можно сразу навесить окно rank() OVER (ORDER BY sum(salary) DESC), PostgreSQL это разрешает в одном SELECT с GROUP BY.
rank() важен из-за ничьих: подразделения 10 и 20 обе дают 250 и обе должны выйти. LIMIT 1 вернул бы одно. Вариант без окон: HAVING sum(salary) = (SELECT max(...) FROM ...).
WITH totals AS (SELECT dep_id, sum(salary) AS total, rank() OVER (ORDER BY sum(salary) DESC) AS rn FROM users GROUP BY dep_id) SELECT dep_id FROM totals WHERE rn = 1