Sobes.tech
Senior
104

Query SQL: mostra gli ID degli utenti e il numero dei loro ordini con stato COMPLETED, inclusi gli utenti senza ordini di questo tipo

Le aziende dove è stato chiesto
Сбер Право

Risposta dell'AI

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.