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

12. Ретеншн по когортам первой покупки

Сложная

По card_tx определите когорту клиента — месяц его первой операции. Клиент активен в месяце, если у него есть хотя бы одна операция в этом календарном месяце.

Для каждой когорты верните cohort_month (первое число месяца), clients — размер когорты, m1_pct — процент клиентов когорты, активных в следующем месяце, и m2_pct — через два месяца. Проценты — с 1 знаком; активность в месяце 2 не требует активности в месяце 1.

Порядок — по cohort_month.

В работе: Оценка новых карт после смены кешбэк-программы: возвращаются ли клиенты после первой покупки.

Таблицы

card_tx — операции по картам

КолонкаТипЧто значит
tx_idintключ
client_idintклиент
tx_attimestampвремя
amount_rubnumericсумма, ₽

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

card_tx · 12 строк

tx_idclient_idtx_atamount_rub
112025-01-05T10:00:00500
222025-01-10T10:00:00700
332025-01-20T10:00:00300
442025-01-31T22:00:001200
512025-02-02T10:00:00400
632025-02-15T10:00:00250
712025-03-03T10:00:00900
822025-03-21T10:00:00100
952025-02-01T09:00:002000
1062025-02-11T09:00:00150
1172025-02-27T09:00:00640
1252025-03-05T09:00:00310

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

cohort_monthclientsm1_pctm2_pct
2025-01-0145050
2025-02-01333,30
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
cohort_month, clients, m1_pct, m2_pct
ретеншнкогортыLEFT JOINусловная агрегацияCTEдаты

Источник: на данных дебетовых карт: активность клиентов по месяцам. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.