Ответ вслух Junior SQL для продуктовых метрик обновлено

Ошибки в SQL для метрик

Вопрос

Какие типичные ошибки допускают при подсчёте продуктовых метрик в SQL?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Первая ошибка: соединить пользователей с заказами и считать COUNT(), получая заказы вместо людей. Вторая: делить целые числа и получать ноль.

Что должно прозвучать в ответе

  • COUNT(*) после JOIN считает строки, а не пользователей

  • Целочисленное деление

  • INNER JOIN теряет пользователей без событий

  • Дни без событий выпадают из средних

  • Часовые пояса и границы периодов

  • Тестовые аккаунты и дубли событий

Что могут спросить следом

  • Как вы проверяете свой запрос?
  • Что такое зерно таблицы?

Разбор

Первая ошибка: соединить пользователей с заказами и считать COUNT(*), получая заказы вместо людей. Вторая: делить целые числа и получать ноль. Третья: INNER JOIN, который выкидывает пользователей без действий из знаменателя, и конверсия становится 100%. Четвёртая: средний DAU по группировке без пустых дней. Пятая: даты в UTC против местного времени и включение границ периода. Шестая: тестовые аккаунты и дубли событий. Поэтому я всегда проверяю число строк после каждого JOIN и сверяю итог с независимым отчётом.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.