38. Отделы с количеством сотрудников #
Условие задачи:
📌 Есть таблицы:
- 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;