37. Отделы с количеством сотрудников #
Условие задачи:
📌 Есть таблицы:
- dep (
id,name) — отделы - emp (
id,id_dep,fio) — сотрудники, гдеid_depссылается наdep.id
Необходимо получить список всех отделов с количеством сотрудников в каждом. Если в отделе нет сотрудников, вывести 0.
Спойлеры к решению
Подсказки
💡 Используйте
💡 Агрегируйте по
💡 При необходимости сортируйте результат по имени отдела для удобства.
LEFT JOIN, чтобы включить отделы без сотрудников.💡 Агрегируйте по
d.name и примените COUNT(e.id), он вернёт 0 для пустых групп.💡 При необходимости сортируйте результат по имени отдела для удобства.
Решение
SELECT
d.name AS department,
COUNT(e.id) AS employee_count
FROM dep d
LEFT JOIN emp e
ON e.id_dep = d.id
GROUP BY d.name
ORDER BY d.name;