У вас есть два источника событий: web_events и app_events. В каждом вы умеете считать уникальных пользователей по user_id. Как корректно получить общее число уникальных пользователей по двум источникам?
AПосчитать
COUNT(DISTINCT user_id) отдельно в каждом источнике и просто сложить два числа, не учитывая возможное пересечение пользователей между источникамиBПосчитать
COUNT(*) в обоих источниках и назвать суммарное число числом уникальных пользователей по двум платформам, опираясь на сырое количество строк в таблицахCВзять только пересечение источников по
user_id и считать его общим итогом, опираясь на тех пользователей, которые точно есть и в web_events, и в app_eventsDСделать объединение строк из обоих источников по
user_id и затем посчитать COUNT(DISTINCT user_id) для дедупликации повторяющихся записейПравильный ответ. Если
user_id может быть и в web_events, и в app_events, то суммирование двух COUNT(DISTINCT user_id) без объединения завышает результат из-за пересечения.Разбор
Здесь каждый источник — это множество значений user_id, и вам нужен размер их объединения. Самый прямой способ — объединить источники и сделать дедупликацию через COUNT(DISTINCT user_id). Если просто сложить два COUNT(DISTINCT user_id), вы посчитаете пересечение дважды и получите завышение, а пересечение в чистом виде даст заниженное число; COUNT(*) по сырым строкам считает события, а не пользователей. Такая проверка адекватности важна для отчётов по аудитории на нескольких платформах.
Проверь себя · 1/3разбор после ответа
Аналитик сложил
DAU за 30 дней и получил 3 млн, а MAU за тот же месяц равен 400 тыс уникальных пользователей. Почему это может быть нормально?Ещё вопросы по теме «Теория множеств и дедупликация»
- В таблице событий за день записано 2 млн строк, а в отчёте по аудитории видно 1.2 млн уникальных пользователей. Какое объяснение наиболее вероятно?
- В канале «поиск» 400 тыс уникальных пользователей, в канале «соцсети» 300 тыс, а пересечение между ними 100 тыс. Сколько уникальных пользователей в объединении этих двух множеств?
- В отчёте уникальные пользователи по каналам: email 200 тыс, push 150 тыс, sms 50 тыс. Сумма по строкам — 400 тыс, а общий итог по всем каналам — 260 тыс уникальных пользователей. Что это чаще всего означает?
- Чтобы посчитать число уникальных пользователей в объединении двух множеств `A` и `B`, зная `|A|`, `|B|` и `|A intersection B|`, какую формулу включения–исключения нужно использовать?
- Вы считаете число покупателей как уникальных пользователей за день. В данных есть `device_id` и `user_id` (если пользователь залогинен). Какой подход к дедупликации обычно более корректен?
- Все вопросы по «Теория множеств и дедупликация» →