#974

Выручка клиентов без задвоения платежей

Финансовый отчёт по клиентам начал завышать выручку, когда у заказа было несколько товарных позиций. Нужно считать только успешные платежи со 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;

Пример ожидаемого ответа

Это пример правильного ответа — у него своё количество строк, оно не должно совпадать с таблицами в схеме.

idnamerevenue
1Alice73
2Bob0
3Carol6

Здесь будет результат вашего запроса