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

38. Сколько людей купили товар в конкретный день

Лёгкая

Заказы лежат в orders, состав заказа — в order_items. Отменённый заказ (status = cancelled) покупкой не считается.

Верните одно число cnt_users — сколько разных людей купили товар с sku_id = 2 1 октября 2025 года (по orders.created_at).

В работе: Быстрая сверка после акции: сколько человек реально купили товар дня.

Таблицы

orders — заказы

КолонкаТипЧто значит
order_idintключ
user_idintпокупатель
created_attimestampвремя оформления
statustextcreated / delivered / cancelled

order_items — позиции заказа

КолонкаТипЧто значит
order_idintзаказ
sku_idintтовар
qtyintштук
price_rubnumericцена за штуку

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

orders · 5 строк

order_iduser_idcreated_atstatus
11012025-10-01T09:15:00delivered
21012025-10-01T18:40:00delivered
31022025-10-01T12:00:00delivered
41032025-10-01T13:30:00delivered
51042025-10-02T10:00:00delivered

order_items · 6 строк

order_idsku_idqtyprice_rub
121349
222349
321349
3511290
47399
521349

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

cnt_users
2
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк не важен.
cnt_users
JOINDISTINCTдаты

Источник: тестовое задание Ozon на стажёра-аналитика, пересказ на itresume.ru, 2023. Условие пересказано своими словами.

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