Выручка клиентов без задвоения платежей
Финансовый отчёт по клиентам начал завышать выручку, когда у заказа было несколько товарных позиций. Нужно считать только успешные платежи со status = 'success' и не умножать сумму платежа на строки товаров. Верните id, name и revenue для каждого пользователя. Пользователи без успешных платежей должны получить 0. Отсортируйте результат по id.
Запрос с ошибкой
SELECT u.id, u.name, COALESCE(SUM(p.amount), 0) AS revenue FROM users u LEFT JOIN orders o ON o.user_id = u.id LEFT JOIN order_items oi ON oi.order_id = o.id LEFT JOIN payments p ON p.order_id = o.id AND p.status = 'success' GROUP BY u.id, u.name ORDER BY u.id;
Пример ожидаемого ответа
Это пример правильного ответа — у него своё количество строк, оно не должно совпадать с таблицами в схеме.
| id | name | revenue |
|---|---|---|
| 1 | Alice | 73 |
| 2 | Bob | 0 |
| 3 | Carol | 6 |
Войдите, чтобы видеть историю отправок
ВойтиВойдите, чтобы использовать AI Mentor
Войти