Вы делаете JOIN таблицы users (1 строка на user_id) с таблицей events (много строк на user_id) и считаете COUNT(users.user_id) как unique users в campaign. Получилось завышение. Какое исправление наиболее корректно?
AЗаменить
JOIN на union, тогда intersection исчезнет.BОставить
COUNT(users.user_id) и разделить на среднее число events.CСчитать
COUNT(DISTINCT event_id), это и есть unique users.DСделать
deduplication на уровне user_id: использовать COUNT(DISTINCT users.user_id) или предварительно агрегировать events до set user_id.Правильный ответ. После
JOIN один user_id может повториться много раз, поэтому для unique users нужна deduplication через DISTINCT.Разбор
Когда вы присоединяете events к users, каждая строка events размножает строку user_id. Счётчик без deduplication превращается в счётчик events, а не аудитории unique users. Правильный проверка здравого смысла — убедиться, что вы считаете размер set user_id, например через COUNT(DISTINCT user_id). Это одна из самых частых ошибок уникальных подсчётов в аналитике.
Проверь себя · 1/3разбор после ответа
Для метрики
retention вы определяете set A = unique users, активные в неделю 1, и set B = unique users, активные в неделю 2. Какой set соответствует вернувшимся users?Ещё вопросы по теме «Теория множеств и дедупликация»
- В `events` за день 2 млн `events`, а в отчёте по `audience` 1.2 млн `unique users`. Какое объяснение наиболее вероятно?
- В `channel` `search` 400 тыс `unique users`, в `channel` `social` 300 тыс `unique users`, а `overlap` (`intersection`) между ними 100 тыс `unique users`. Сколько `unique users` в `union` этих двух `set`?
- В отчёте вы видите `unique users` по `channel`: `email` 200 тыс, `push` 150 тыс, `sms` 50 тыс. Сумма по строкам 400 тыс, но общий итог по всем `channel` показывает 260 тыс `unique users`. Что это чаще всего означает?
- Чтобы посчитать `unique users` в `union` двух `set` `A` и `B`, зная `|A|`, `|B|` и `|A intersection B|`, какую формулу `включение–исключение` нужно использовать?
- Вы считаете число `buyers` как `unique users` за день. В данных есть `device_id` и `user_id` (если `user` залогинен). Какой подход к `deduplication` чаще всего более корректен для подсчёта `buyers`?
- Все вопросы по «Теория множеств и дедупликация» →