Войти Регистрация
Data base

242. Когорты диджитал-активных клиентов и доля платящих

Сложная

В activity — ежедневные срезы по клиентам Альфа-Банка за сентябрь 2021 — февраль 2022: digital_30_cnt — входы в приложение за 30 дней до value_day, tran_active_30_cnt — дни с картой за те же 30 дней. Счётчики бывают NULL, это 0. Строка в срезе есть и у клиента, который ничего не делал.

Клиент диджитал-активен в месяце, если хотя бы в один день месяца digital_30_cnt ≥ 1, и транзакционно активен, если хотя бы в один день tran_active_30_cnt ≥ 1. Когорта — месяц, когда клиент впервые стал диджитал-активным.

Для каждой когорты и номера месяца от неё (0 — сам месяц когорты) верните cohort_month, month_no, digital_clients — сколько клиентов когорты диджитал-активны в этом месяце, retention_pct — их процент от размера когорты (до 0,1), tran_clients — сколько из них в том же месяце ещё и транзакционно активны. Месяцы, где из когорты не активен никто, не выводите. Порядок — cohort_month, month_no.

В работе: Оценка, переходит ли активность в приложении в реальные платежи по карте у новых пользователей.

Таблицы

activity — одна строка — срез клиента на дату

КолонкаТипЧто значит
client_idintклиент
value_daydateотчётная дата
digital_30_cntintвходы за 30 дней, может быть NULL
tran_active_30_cntintдни с транзакциями за 30 дней, может быть NULL

Пример: данные

activity · 11 строк

client_idvalue_daydigital_30_cnttran_active_30_cnt
12021-11-0500
12021-11-2021
12021-12-1003
12022-01-1510
22021-11-0110
22021-12-3142
32021-10-3000
32021-12-0111
32022-01-0320
42021-09-1502
42021-10-15NULL1

Ожидаемый ответ

cohort_monthmonth_nodigital_clientsretention_pcttran_clients
2021-11-01021001
2021-11-0111501
2021-11-0121500
2021-12-01011001
2021-12-01111000
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 5 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
cohort_month, month_no, digital_clients, retention_pct, tran_clients
когортыретеншнCTEусловная агрегациядаты

Источник: тестовое аналитика данных в Альфа-Банке, сборник No Data No Growth, 2022. Условие пересказано своими словами.