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

207. Топ-5 товаров дня распродажи с ничьими

Средняя

В orders — заказы покупателей. Отменённые (status = cancelled) не считаются.

Найдите товары, которые входят в пятёрку по числу заказов за 11 ноября 2025. Если у нескольких товаров столько же заказов, сколько у пятого места, выводите их все. Место считается как в спорте: два вторых места занимают и третье. Верните sku_id, orders в порядке убывания orders, при равенстве — по sku_id.

В работе: Витрина «Хиты распродажи» на главной: товар с тем же числом заказов, что у пятого, не должен пропасть случайно.

Таблицы

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

КолонкаТипЧто значит
order_idintключ
sku_idintтовар
ordered_attimestampвремя заказа, МСК
statustextnew / delivered / cancelled

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

orders · 42 строк

order_idsku_idordered_atstatus
1100112025-11-11T10:00:00delivered
1101112025-11-11T10:01:00delivered
1102112025-11-11T10:02:00delivered
1103112025-11-11T10:03:00delivered
1104112025-11-11T10:04:00delivered
1105112025-11-11T10:05:00delivered
1106112025-11-11T10:06:00delivered
1107112025-11-11T10:07:00delivered
1108112025-11-11T10:08:00delivered
1200122025-11-11T10:00:00delivered
1201122025-11-11T10:01:00delivered
1202122025-11-11T10:02:00delivered
1203122025-11-11T10:03:00delivered
1204122025-11-11T10:04:00delivered
1205122025-11-11T10:05:00delivered
1206122025-11-11T10:06:00delivered
1300132025-11-11T10:00:00delivered
1301132025-11-11T10:01:00delivered
1302132025-11-11T10:02:00delivered
1303132025-11-11T10:03:00delivered
1304132025-11-11T10:04:00delivered
1305132025-11-11T10:05:00delivered
1306132025-11-11T10:06:00delivered
1400142025-11-11T10:00:00delivered
1401142025-11-11T10:01:00delivered
1402142025-11-11T10:02:00delivered
1403142025-11-11T10:03:00delivered
1404142025-11-11T10:04:00delivered
1500152025-11-11T10:00:00delivered
1501152025-11-11T10:01:00delivered
1502152025-11-11T10:02:00delivered
1503152025-11-11T10:03:00delivered
1600162025-11-11T10:00:00delivered
1601162025-11-11T10:01:00delivered
1602162025-11-11T10:02:00delivered
1603162025-11-11T10:03:00delivered
1700172025-11-11T10:00:00delivered
1701172025-11-11T10:01:00delivered
1702172025-11-11T10:02:00delivered
1703172025-11-11T10:03:00delivered
1800182025-11-11T10:00:00delivered
1801182025-11-11T10:01:00delivered

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

sku_idorders
119
127
137
145
154
164
174
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 5 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
sku_id, orders
топ-N в группеоконные функцииGROUP BYдаты

Источник: наша задача на данных Wildberries: заказы в день распродажи 11.11. Условие пересказано своими словами.