Выбор ответа Middle SQL для продуктовых метрик обновлено
Потерянный знаменатель
Вопрос
Аналитик считает конверсию в покупку как COUNT(DISTINCT o.user_id) / COUNT(DISTINCT u.id) с INNER JOIN users u JOIN orders o. Почему результат всегда 100%?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: INNER JOIN оставил лишь пользователей с заказами. Пользователи без заказов выпадают при INNER JOIN, поэтому все оставшиеся покупатели.
Варианты ответа
- Из-за целочисленного деления двух счётчиков
- COUNT(DISTINCT) не работает вместе с JOIN
- Нужно добавить ORDER BY перед делением
- INNER JOIN оставил лишь пользователей с заказамиправильный ответ
Разбор
Пользователи без заказов выпадают при INNER JOIN, поэтому все оставшиеся покупатели. Нужен LEFT JOIN от пользователей. Целочисленное деление дало бы 0 или 1, а не объяснило бы суть. COUNT(DISTINCT) работает с JOIN, ORDER BY на результат не влияет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.