**Контекст:** Задание по мотивам реального тестового в Учи.ру. Продуктовый аналитик строит сессии пользователей: если между двумя событиями прошло более 30 минут — это новая сессия.
**Данные:**
[см. код в задании]
| user_id | event | timest |
|---------|--------------|---------------------|
| 1 | page_view | 2025-03-10 09:00:00 |
| 1 | button_click | 2025-03-10 09:05:00 |
| 1 | page_view | 2025-03-10 09:20:00 |
| 1 | page_view | 2025-03-10 10:15:00 |
| ... | ... | ... |
**Задание:**
1. Разбейте события на сессии: новая сессия начинается, если с предыдущего события прошло > 30 минут
2. Присвойте каждому событию session_id (порядковый номер сессии для данного пользователя)
3. Выведите user_id, event, timest, gap_minutes и session_id
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE events (
id SERIAL PRIMARY KEY,
user_id INT NOT NULL,
event VARCHAR(100) NOT NULL,
timest TIMESTAMP NOT NULL
);
INSERT INTO events (user_id, event, timest) VALUES
(1, 'page_view', '2025-03-10 09:00:00'),
(1, 'button_click', '2025-03-10 09:05:00'),
(1, 'page_view', '2025-03-10 09:20:00'),
(1, 'page_view', '2025-03-10 10:15:00'),
(1, 'button_click', '2025-03-10 10:20:00'),
(1, 'page_view', '2025-03-10 14:00:00'),
(2, 'page_view', '2025-03-10 08:00:00'),
(2, 'button_click', '2025-03-10 08:10:00'),
(2, 'page_view', '2025-03-10 08:50:00'),
(2, 'page_view', '2025-03-10 11:00:00');
LAG SUM OVER сессионизация оконные функции
Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: LAG, SUM OVER, сессионизация, оконные функции.
На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания