В price_history — изменения цены в карточках товаров. Перед распродажей некоторые продавцы поднимают цену, чтобы скидка выглядела больше.
Найдите изменения, при которых новая цена не меньше чем на 20 % выше предыдущей цены той же карточки. Верните nm_id, changed_at, old_price, new_price, growth_pct (рост в процентах с 1 знаком). Порядок — по nm_id, затем changed_at.
В работе: Модерация акций: карточки, где «скидка» получилась за счёт подъёма цены накануне.
Таблицы
price_history — одна строка — одно изменение цены
| Колонка | Тип | Что значит |
|---|---|---|
nm_id | int | артикул |
changed_at | timestamp | время изменения |
price_rub | numeric | новая цена |
Пример: данные
price_history · 7 строк
| nm_id | changed_at | price_rub |
|---|---|---|
| 7001 | 2026-10-01T09:00:00 | 1000 |
| 7001 | 2026-10-05T09:00:00 | 1250 |
| 7001 | 2026-10-10T09:00:00 | 1300 |
| 7001 | 2026-10-15T09:00:00 | 990 |
| 7002 | 2026-10-02T09:00:00 | 2000 |
| 7002 | 2026-10-08T09:00:00 | 2400 |
| 7002 | 2026-10-12T09:00:00 | 2350 |
Ожидаемый ответ
| nm_id | changed_at | old_price | new_price | growth_pct |
|---|---|---|---|---|
| 7001 | 2026-10-05T09:00:00 | 1000 | 1250 | 25 |
| 7002 | 2026-10-08T09:00:00 | 2000 | 2400 | 20 |
Как проверяем
Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
nm_id, changed_at, old_price, new_price, growth_pct
Источник: на данных Wildberries: история цен в карточках. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.