Вычислите максимальную зарплату оконной функцией по департаменту и оставьте все строки с этим значением, включая совпадения.
Напишите 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, этот вариант не вернёт сотрудников отдела. Предполагается, что такие значения не считаются определённой максимальной зарплатой.