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, что соответствует логике задачи.

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

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

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

Подробнее