JOIN платежей и возвратов: почему задваивается сумма
У одного платежа несколько частичных возвратов. Восстановите строки после соединения и посчитайте сумму, которую увидит агрегат.
Выберите ответ и проверьте себя. Продолжить тему можно в курсе Продвинутый SQL: сложные запросы и задачи для собеседований.
Аналитик соединил таблицы для финансового отчёта следующим образом:SELECT o.order_id, SUM(p.amount) AS total_paid, SUM(r.amount) AS total_refunded FROM orders o LEFT JOIN payments p ON o.order_id = p.order_id LEFT JOIN refunds r ON p.payment_id = r.payment_id GROUP BY o.order_id.
Для заказа 500 оформлен один платёж на 10 000 руб., к которому затем было проведено два частичных возврата: по 2 000 руб. и 3 000 руб. Какое значение total_paid вернёт этот запрос для заказа 500 и почему?
Без регистрации · результат не сохраняется
Связанные задачи
- SELF JOIN: сколько пар получится при соединении таблицы с собой
- INTERSECT в SQL: сколько строк останется после пересечения
- SQL: Агрегация, оконные вычисления и фильтрация — Категории-лидеры и доля в продажах
- SQL: SELF JOIN и поиск уникальных пар — Пары с несколькими общими проектами
- SQL EXISTS: размножит ли запрос строки клиента
- SQL: Календарная таблица и пропущенные даты — Непрерывный отчёт о звонках
