Самое важное про IT на доступном языке.
Сотрудничество: @olegpohl
Служба поддержки: https://t.me/merion_academy_bot
Post #1270
989
Пятничная загадка: SQL-отчёт умножил выручку
В таблице
Для заказа №42 отчёт показывает 4000 ₽. В таблице
Почему получилось именно 4000 ₽?
👀 -
🔥- два
🤔- база округлила сумму из-за разных типов данных в таблицах
Ставь реакцию. Разбор и правильный запрос — в следующий понедельник.
В таблице
orders у заказа №42 сумма 1000 ₽. У него две строки в order_items и два события в payments. Аналитик собирает отчёт:SELECT o.id, SUM(o.total) AS revenueFROM orders oJOIN order_items i ON i.order_id = o.idJOIN payments p ON p.order_id = o.idGROUP BY o.id;Для заказа №42 отчёт показывает 4000 ₽. В таблице
orders одна строка, сумма там правильная. Ни одна таблица не содержит дублей по своему первичному ключу.Почему получилось именно 4000 ₽?
👀 -
SUM складывает значение total дважды: один раз до JOIN и ещё раз после🔥- два
JOIN создали четыре строки: 2 товара × 2 платежа🤔- база округлила сумму из-за разных типов данных в таблицах
Ставь реакцию. Разбор и правильный запрос — в следующий понедельник.
- 🔥 44
- 👀 4




