Напишите SQL-запрос, который выберет всех сотрудников с максимальной зарплатой в каждом департаменте.

Вычислите максимальную зарплату оконной функцией по департаменту и оставьте все строки с этим значением, включая совпадения.

Короткий ответ

Что ответить на собеседовании

Вычислите максимальную зарплату оконной функцией по департаменту и оставьте все строки с этим значением, включая совпадения.

Подробный разбор

Ответ с пояснениями

Вычислите максимальную зарплату оконной функцией по департаменту и оставьте все строки с этим значением, включая совпадения.

Для таблицы employees с полями id, name, department_id, salary:

WITH ranked AS (
  SELECT e.*, MAX(salary) OVER (PARTITION BY department_id) AS max_salary
  FROM employees e
)
SELECT id, name, department_id, salary
FROM ranked
WHERE salary = max_salary;

MAX игнорирует NULL; если в отделе все зарплаты NULL, этот вариант не вернёт сотрудников отдела. Предполагается, что такие значения не считаются определённой максимальной зарплатой.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее