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

97. Второй заказ в Лавке за 7 суток

Средняя

В orders — заказы Лавки, status = delivered или cancelled. Отменённые заказы не считаются ни первым, ни вторым.

Новый клиент марта — тот, чей первый доставленный заказ пришёлся на март 2026. Клиент вернулся, если его второй доставленный заказ сделан не позже чем через 7 суток (168 часов) после первого.

Верните одну строку: new_clients, repeat_7d и repeat_pct с одним знаком. Если новых клиентов нет, доля пустая.

В работе: Оценка промокода на второй заказ: сколько клиентов возвращается за неделю.

Таблицы

orders — одна строка — один заказ

КолонкаТипЧто значит
order_idintключ
client_idintклиент
ordered_attimestampвремя заказа
statustextdelivered / cancelled

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

orders · 8 строк

order_idclient_idordered_atstatus
11002026-03-02T19:00:00delivered
21002026-03-05T20:00:00delivered
31012026-03-03T09:00:00delivered
41012026-03-20T09:00:00delivered
51022026-03-10T21:00:00delivered
61032026-03-15T12:00:00delivered
71032026-03-16T12:00:00delivered
81032026-03-17T12:00:00delivered

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

new_clientsrepeat_7drepeat_pct
4250
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 5 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк не важен.
new_clients, repeat_7d, repeat_pct
ретеншноконные функциидатыусловная агрегация

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

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