Назад к вопросам
Senior
3
SQL задача: вывести id пользователей и количество их заказов в статусе COMPLETED, включая пользователей с нулевым количеством таких заказов
Компании, где спрашивали
Сбер Право
Ответ от нейросети
sobes.tech AI
Чтобы вывести id всех пользователей и количество их заказов в статусе COMPLETED, включая пользователей без таких заказов, нужно использовать LEFT JOIN между таблицей пользователей и заказов, а затем сгруппировать по пользователю.
Пример SQL-запроса:
SELECT u.id AS user_id,
COUNT(o.id) AS completed_orders_count
FROM users u
LEFT JOIN orders o ON o.user_id = u.id AND o.status = 'COMPLETED'
GROUP BY u.id
ORDER BY u.id;
Объяснение:
LEFT JOINгарантирует, что все пользователи попадут в результат, даже если у них нет заказов с нужным статусом.- Условие по статусу
COMPLETEDпомещено вON, чтобы не исключать пользователей без таких заказов. COUNT(o.id)считает количество заказов с нужным статусом, для отсутствующих будет 0.