## Контекст
Вы аналитик в интернет-магазине. Отдел антифрода просит найти клиентов, у которых число заказов резко выросло от месяца к месяцу — это может быть как всплеск лояльности (кандидаты в VIP), так и подозрительная активность (перепродажа, накрутка бонусов).
## Данные
Таблица `orders`:
| Колонка | Тип | Описание |
|---|---|---|
| `order_id` | BIGINT | ID заказа (PK) |
| `customer_id` | BIGINT | ID клиента |
| `order_date` | DATE | Дата заказа |
| `amount` | NUMERIC(10,2) | Сумма заказа, руб |
| `status` | TEXT | `paid`, `cancelled`, `refunded` |
## Задание
1. Учитывайте только оплаченные заказы (`status = 'paid'`).
2. Для каждого клиента посчитайте число заказов **по месяцам**.
3. Для каждого месяца сравните с **предыдущим месяцем этого же клиента**.
4. Выведите пары (клиент, месяц), где число заказов выросло **минимум в 3 раза** относительно предыдущего месяца, при этом в предыдущем месяце было **не меньше 2 заказов** (чтобы отсечь рост с 1 до 3).
**Формат ответа:** `customer_id`, `month` (первое число месяца), `orders_prev`, `orders_curr`, `growth_ratio` (округлить до 2 знаков). Отсортировать по `growth_ratio` убыванию.
## Замечание
Месяцы, в которых у клиента вообще не было заказов, в данных отсутствуют — соседние по хронологии строки могут быть не соседними по календарю. Считайте «предыдущим месяцем» предыдущую строку клиента в его истории заказов.
window functions LAG self-join агрегация CTE
Это задание для уровня medium. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: window functions, LAG, self-join, агрегация, CTE.
На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 520+ SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания