В таблице orders каждая строка — один заказ (событие), а один user_id может сделать несколько заказов. Вы хотите посчитать число покупателей как уникальных пользователей. Какой счётчик соответствует задаче дедупликации покупателей?

ACOUNT(*) по таблице orders: даёт общее число записей и растёт при повторных покупках одних и тех же пользователей
BCOUNT(DISTINCT order_id): возвращает число уникальных заказов как событий и завышает ответ при нескольких покупках на пользователя
CCOUNT(DISTINCT user_id): возвращает число уникальных пользователей, совершивших хотя бы один заказ, что соответствует числу покупателей
DSUM(order_amount): возвращает общую выручку по таблице заказов и для подсчёта покупателей применить нельзя
Правильный ответ. Для подсчёта покупателей как уникальных пользователей нужна дедупликация по user_id, а не по событиям-заказам.

Разбор

Счётчик COUNT(*) или COUNT(DISTINCT order_id) показывает количество заказов, то есть событий, и растёт, если один пользователь покупает много раз. Для аудитории покупателей нужно считать уникальные user_id, то есть размер множества покупателей. Эта проверка здравого смысла помогает не перепутать метрики объёма продаж и охвата уникальных пользователей.

Проверь себя · 1/3разбор после ответа
Аналитик сложил DAU за 30 дней и получил 3 млн, а MAU за тот же месяц равен 400 тыс уникальных пользователей. Почему это может быть нормально?
Открыть Карьерник в Telegram

Ещё вопросы по теме «Теория множеств и дедупликация»