Заскуль Питона
15.12
Вы набрали достаточное количество реакций, поэтому привожу 1 кейс - это когортный анализ в SQL. ☕️ Этот подход важен, когда нужно понять, что происходит с пользователями спустя какое-то время после их взаимодействия с продуктом. Например, они пользуются новой фичей или заходят в продукт через 1, 7, 14, 30 дней после регистрации? Когортный анализ помогает ответить на такие вопросы. 🍪🍪 Пример задачи Допустим, у вас есть продукт, где пользователи регистрируются и совершают действия. Нужно определить, сколько пользователей из каждой когорты (группы, зарегистрированной в один день) возвращаются через разные промежутки времени.
🤔 Что сделаем? 1. Разделим пользователей на когорты по дате регистрации. 2. Посчитаем, сколько пользователей из каждой когорты совершили хотя бы одно действие через 0, 1, 7, 14 и 30 дней. 3. Рассчитаем удержание в процентах относительно размера когорты.
`with cohort_base as ( select u.user_id, date(u.registration_date) as cohort_date, datediff(e.event_date, u.registration_date) as days_since_registration from users u left join events e on u.user_id = e.user_id where e.event_date is not null ), cohort_activity as ( select cohort_date, days_since_registration, count(distinct user_id) as active_users from cohort_base where days_since_registration between 0 and 30 group by cohort_date, days_since_registration ), cohort_size as ( select date(registration_date) as cohort_date, count(distinct user_id) as cohort_size from users group by cohort_date ) select ca.cohort_date, ca.days_since_registration, round(ca.active_users * 100.0 / cs.cohort_size, 2) as retention_rate from cohort_activity ca join cohort_size cs on ca.cohort_date = cs.cohort_date order by ca.cohort_date, ca.days_since_registration;
😱 Что делает этот запрос? cohort_base - объединяем таблицу пользователей и таблицу событий, чтобы определить, на какой день с момента регистрации пользователь совершил событие.
cohort_activity - считаем количество уникальных пользователей, которые были активны через 0, 1, 7, 14 и 30 дней после регистрации, для каждой когорты.
cohort_size - определяем размер каждой когорты — количество пользователей, зарегистрировавшихся в конкретный день.
🐸 Рассчитываем удержание (retention_rate) как процент активных пользователей от общего числа зарегистрированных в когорте. Можно выявить, как изменения в продукте (новая фича, интерфейс) влияют на удержание пользователей. Если retention сильно падает после первых дней, это сигнал, что пользователи теряют интерес или сталкиваются с трудностями.
Обратная задача рассчитать Churn Rate, нужно просто сделать 1 - Retention Rate
Если наберется 100 🐳, выложу еще пост с практическим применением SQL, есть еще что рассказать 🔥`
еще контент в этом сообществе
еще контент в этом соообществе
Заскуль Питона
15.12
войдите, чтобы увидеть
и подписаться на интересных профи