У вас есть два источника events: web_events и app_events. В каждом вы умеете считать unique users по user_id. Как корректно получить общее число unique users по двум источникам?

AСделать union строк из обоих источников (по user_id) и затем посчитать COUNT(DISTINCT user_id) как deduplication.
BПосчитать COUNT(DISTINCT user_id) в каждом источнике и сложить результаты.
CПосчитать COUNT(*) в обоих источниках и назвать это unique users.
DВзять intersection источников и считать её как общий итог.
Правильный ответ. Если user_id может быть и в web_events, и в app_events, то суммирование двух unique users без union завышает из-за overlap.

Разбор

Здесь каждый источник — это set user_id, и вам нужен размер union. Самый прямой способ — объединить источники (union) и сделать deduplication через COUNT(DISTINCT user_id). Если просто сложить два COUNT(DISTINCT user_id), вы посчитаете intersection дважды и получите завышение. Такой проверка здравого смысла полезен для отчётов по cross-platform аудитории.

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

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