В orders — заказы Лавки, status = delivered или cancelled. Отменённые заказы не считаются ни первым, ни вторым.
Новый клиент марта — тот, чей первый доставленный заказ пришёлся на март 2026. Клиент вернулся, если его второй доставленный заказ сделан не позже чем через 7 суток (168 часов) после первого.
Верните одну строку: new_clients, repeat_7d и repeat_pct с одним знаком. Если новых клиентов нет, доля пустая.
В работе: Оценка промокода на второй заказ: сколько клиентов возвращается за неделю.
Таблицы
orders — одна строка — один заказ
| Колонка | Тип | Что значит |
|---|---|---|
order_id | int | ключ |
client_id | int | клиент |
ordered_at | timestamp | время заказа |
status | text | delivered / cancelled |
Пример: данные
orders · 8 строк
| order_id | client_id | ordered_at | status |
|---|---|---|---|
| 1 | 100 | 2026-03-02T19:00:00 | delivered |
| 2 | 100 | 2026-03-05T20:00:00 | delivered |
| 3 | 101 | 2026-03-03T09:00:00 | delivered |
| 4 | 101 | 2026-03-20T09:00:00 | delivered |
| 5 | 102 | 2026-03-10T21:00:00 | delivered |
| 6 | 103 | 2026-03-15T12:00:00 | delivered |
| 7 | 103 | 2026-03-16T12:00:00 | delivered |
| 8 | 103 | 2026-03-17T12:00:00 | delivered |
Ожидаемый ответ
| new_clients | repeat_7d | repeat_pct |
|---|---|---|
| 4 | 2 | 50 |
Как проверяем
Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 5 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк не важен.
new_clients, repeat_7d, repeat_pct
Источник: на данных Лавки: заказы клиентов. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.