Вы соединяете агрегаты daily_orders(day, platform, orders) и daily_sessions(day, platform, sessions) для расчёта конверсии. Сделали JOIN только по day и заметили странные значения. В чём типичная ошибка?

AВ JOIN нельзя использовать колонку day, нужно использовать только id.
BИз-за JOIN пропали строки, потому что нужен FULL JOIN.
CПроизошло умножение строк: на каждый day соединились все platform между собой, потому что в условии не хватает platform.
DНичего страшного: JOIN сам сопоставит правильные platform.
Правильный ответ. Если не включить все ключи (например, day и platform) в условие ON, агрегаты могут соединиться «крест-накрест» и раздуть метрики.

Разбор

Обе таблицы агрегированы по двум измерениям: day и platform. Если соединить только по day, то строки разных платформ внутри одного дня начнут сочетаться друг с другом, создавая лишние комбинации и искажая orders/sessions. Правильное условие должно включать оба поля ключа, например ON o.day = s.day AND o.platform = s.platform.

Проверь себя · 1/3разбор после ответа
Нужно построить отчёт: по каждому продукту и каждому дню месяца — сумма продаж, включая дни с нулевыми продажами. Как сформировать каркас из всех пар дата-продукт?
Тренировать SQL в Telegram

Ещё вопросы по теме «JOIN и операции множеств»