Сумма заказа в выгрузке больше, чем в интерфейсе, ровно кратно числу позиций
Вы сверяете суммы заказов запросом:
SELECT o.id, SUM(o.amount) AS total
FROM orders o
JOIN order_items i ON i.order_id = o.id
GROUP BY o.id;
У заказов с одной позицией суммы сходятся с интерфейсом. У заказа с тремя позициями сумма в выгрузке ровно втрое больше, чем на экране.
Что произошло?
- Соединение размножило строку заказа по числу позиций, и SUM сложил одну и ту же сумму трижды
- В таблице позиций лежат дубли, данные испорчены и нужно заводить дефект на целостность
- Группировка по o.id некорректна, для сумм по заказу нужно группировать по идентификатору позиции
- Функция SUM неточно работает с денежными типами, накопленная погрешность растёт с числом строк
