**Контекст:** Задание с собеседования в один из крупных российских маркетплейсов. Продуктовая команда хочет сегмент «активно покупающих» — пользователей, которые сделали минимум **3 заказа в течение 14 дней** (скользящее окно, не календарные недели).
**Данные:**
[см. код в задании]
Пример:
| user_id | order_date | amount |
|---------|-----------|--------|
| 1 | 2026-03-01 | 1500 |
| 1 | 2026-03-05 | 2200 |
| 1 | 2026-03-10 | 800 | ← здесь 3 заказа за 10 дней → попадает в сегмент |
| 1 | 2026-05-20 | 1000 |
| 2 | 2026-03-02 | 500 |
| 2 | 2026-03-30 | 700 | ← только 2 за 28 дней → НЕ попадает |
**Задание:**
1. Найдите пользователей, у которых существует окно в 14 дней, содержащее минимум 3 заказа
2. Выведите `user_id` и дату первого события в «активном окне»
**Ожидаемый результат на тестовых данных:**
| user_id | activation_date |
|---------|-----------------|
| 1 | 2026-03-01 |
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE orders (
order_id BIGINT PRIMARY KEY,
user_id INT NOT NULL,
order_date DATE NOT NULL,
amount NUMERIC(10, 2) NOT NULL
);
window-functions LAG retention gaps-and-islands
Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: window-functions, LAG, retention, gaps-and-islands.
На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 520+ SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания