Приведённый SQL-запрос корректно решает поставленную задачу:
SQL: максимальная зарплата по каждому отделу
Приведённый SQL-запрос корректно решает поставленную задачу:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
-- Есть таблицы со структурой Employee id (PK) name salary dep_id(FK department.id)
Department id (PK) name -- написать запрос, который вернет список наименований всех отделов с максимальной зарплатой в каждом отделе
Ответ
Приведённый SQL-запрос корректно решает поставленную задачу:
- В первом столбце выводится имя.
- Во втором — общее количество посетителей с этим именем.
- В третьем — количество посетителей с этим именем и возрастом старше 27 лет.
- Результат отсортирован по имени в алфавитном порядке.
Вот пример запроса:
SELECT
name,
COUNT(*) AS total,
COUNT(CASE WHEN age > 27 THEN 1 END) AS older_27
FROM customers
GROUP BY name
ORDER BY name ASC;
Если возраст может быть NULL, то условие age > 27 автоматически исключит такие записи из подсчёта в older_27, что соответствует логике задачи.