Когорта покупателя — месяц его первого неотменённого заказа за всю историю. Отменённые заказы (cancelled) не учитываются нигде.
Для когорт января, февраля и марта 2026 года верните cohort — первый день месяца (date), users — размер когорты, m1_pct и m2_pct — процент покупателей когорты с неотменённым заказом ровно в следующем и через один месяц после месяца когорты, с одним знаком. Порядок — по cohort.
В работе: Когортный отчёт: удерживает ли маркетплейс новых покупателей после первой покупки.
Таблицы
orders — заказы
| Колонка | Тип | Что значит |
|---|---|---|
order_id | int | ключ |
user_id | int | покупатель |
created_at | timestamp | время |
status | text | created / delivered / cancelled |
Пример: данные
orders · 10 строк
| order_id | user_id | created_at | status |
|---|---|---|---|
| 1 | 1 | 2026-01-05T10:00:00 | delivered |
| 2 | 1 | 2026-02-11T10:00:00 | delivered |
| 3 | 1 | 2026-03-02T10:00:00 | delivered |
| 4 | 2 | 2026-01-20T10:00:00 | delivered |
| 5 | 2 | 2026-01-28T10:00:00 | delivered |
| 6 | 3 | 2026-01-31T23:59:00 | delivered |
| 7 | 3 | 2026-03-01T00:00:00 | delivered |
| 8 | 4 | 2026-02-14T12:00:00 | delivered |
| 9 | 4 | 2026-03-14T12:00:00 | delivered |
| 10 | 5 | 2026-02-20T12:00:00 | delivered |
Ожидаемый ответ
| cohort | users | m1_pct | m2_pct |
|---|---|---|---|
| 2026-01-01 | 3 | 33,3 | 66,7 |
| 2026-02-01 | 2 | 50 | 0 |
Как проверяем
Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
cohort, users, m1_pct, m2_pct
Источник: на данных Ozon: заказы покупателей. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.