11. Написать запрос.Всего 10 пользователей. В выводе 5 пользователей в статусе Новый, 3 пользователя в статусе Работает. Куда делось еще 2 пользователя? #
Сколько пользователей в каком статусе?
Результат должен быть в виде: Название статуса, Количество пользователей в этом статусе
User
id
name
status_id
Status
id
name
Спойлеры к решению
Подсказки
📊 Задача требует подсчета количества пользователей для каждого статуса.
🔍 Мы можем использовать
🔑 Используем
🔍 Мы можем использовать
JOIN
для объединения таблиц User
и Status
, чтобы получить информацию о пользователях и их статусах.🔑 Используем
GROUP BY
для группировки по статусу и подсчета количества пользователей в каждом статусе.Решение
SELECT s.name AS status_name, COUNT(u.id) AS user_count
FROM User u
JOIN Status s ON u.status_id = s.id
GROUP BY s.name;
📌 Объяснение:
JOIN
соединяет таблицыUser
иStatus
по полюstatus_id
.GROUP BY s.name
группирует по названию статуса.COUNT(u.id)
подсчитывает количество пользователей в каждом статусе.
📊 Результат:
- В выводе будут отображены статусы с количеством пользователей в этих статусах. Если пользователи не попали в вывод, это может означать, что они имеют статус, не представленный в запросе. Возможно, они имеют статус, который не был учтен в подсчете (например, был удален или имеет другой статус, не указанный в выводе).
🎯 Задача решена!