Собесов

InterviewQuery — Subscription Retention: 3-месячная когортная сетка

SQLCohort retentionСложнаяSenior

Условие

Таблица subscriptions(user_id, plan_id, start_date, end_date). end_date может быть NULL (активная подписка).

Постройте когортную таблицу retention за первые 3 месяца для каждой пары (cohort_month, plan_id):

  • cohort_monthDATE_TRUNC('month', start_date),
  • cohort_size — сколько пользователей в когорте,
  • retention_m1, m2, m3 — доля активных в 1-й, 2-й, 3-й месяц после start_date.

«Активен в месяце M» = end_date либо NULL, либо >= start_of_month + M.

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти