Каждое утро в stock_snapshots пишется остаток SKU на каждом складе. Если в какой-то день по SKU нет ни одной строки, считаем, что товара в этот день не было нигде.
Товар «закончился», если суммарный остаток по всем складам за день равен нулю. Для каждого SKU из таблицы найдите периоды с 1 по 14 декабря 2025 года длиной не меньше трёх дней подряд, когда товар закончился: sku, from_date, to_date, days. Порядок — по sku, from_date.
В работе: Оценка упущенной выручки: сколько дней подряд покупатель видел «нет в наличии».
Таблицы
stock_snapshots — утренний снимок остатков
| Колонка | Тип | Что значит |
|---|---|---|
sku | int | товар |
warehouse | text | склад |
snap_date | date | дата снимка |
qty | int | остаток, штук |
Пример: данные
stock_snapshots · 14 строк
| sku | warehouse | snap_date | qty |
|---|---|---|---|
| 501 | Хоругвино | 2025-12-01 | 12 |
| 501 | Хоругвино | 2025-12-02 | 12 |
| 501 | Хоругвино | 2025-12-03 | 12 |
| 501 | Хоругвино | 2025-12-04 | 0 |
| 501 | Хоругвино | 2025-12-05 | 0 |
| 501 | Хоругвино | 2025-12-06 | 0 |
| 501 | Хоругвино | 2025-12-07 | 0 |
| 501 | Хоругвино | 2025-12-08 | 12 |
| 501 | Хоругвино | 2025-12-09 | 12 |
| 501 | Хоругвино | 2025-12-10 | 0 |
| 501 | Хоругвино | 2025-12-11 | 12 |
| 501 | Хоругвино | 2025-12-12 | 12 |
| 501 | Хоругвино | 2025-12-13 | 12 |
| 501 | Хоругвино | 2025-12-14 | 12 |
Ожидаемый ответ
| sku | from_date | to_date | days |
|---|---|---|---|
| 501 | 2025-12-04 | 2025-12-07 | 4 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
sku, from_date, to_date, days
Источник: на данных Ozon: склады и остатки. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.