**Контекст:** Задание по мотивам реального тестового в VK. Продуктовый аналитик хочет понять, какой товар пользователи покупают первым, чтобы настроить welcome-воронку.
**Данные:**
[см. код в задании]
| user_id | item_name | ts | price | quantity |
|---------|------------------------|---------------------|--------|----------|
| 1 | Стикерпак «Котики» | 2025-01-10 09:30:00 | 99.00 | 1 |
| 1 | VK Музыка подписка | 2025-01-12 14:00:00 | 199.00 | 1 |
| 2 | VK Музыка подписка | 2025-01-08 11:00:00 | 199.00 | 1 |
| 3 | Голоса 50 шт | 2025-01-05 08:00:00 | 250.00 | 1 |
| ... | ... | ... | ... | ... |
**Задание:**
1. Для каждого пользователя найдите его первую покупку (по ts)
2. Выведите user_id, item_name, ts и price первой покупки
3. Если первые покупки совпали по секунде — выведите любую одну
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE transactions (
id SERIAL PRIMARY KEY,
user_id INT NOT NULL,
item_name VARCHAR(200) NOT NULL,
ts TIMESTAMP NOT NULL,
price NUMERIC(10,2) NOT NULL,
quantity INT NOT NULL DEFAULT 1
);
INSERT INTO transactions (user_id, item_name, ts, price, quantity) VALUES
(1, 'Стикерпак «Котики»', '2025-01-10 09:30:00', 99.00, 1),
(1, 'VK Музыка подписка', '2025-01-12 14:00:00', 199.00, 1),
(1, 'Голоса 100 шт', '2025-01-15 18:45:00', 490.00, 1),
(2, 'VK Музыка подписка', '2025-01-08 11:00:00', 199.00, 1),
(2, 'Стикерпак «Мемы»', '2025-01-20 16:30:00', 149.00, 2),
(3, 'Голоса 50 шт', '2025-01-05 08:00:00', 250.00, 1),
(3, 'VK Клипы PRO', '2025-01-06 12:15:00', 299.00, 1),
(4, 'Стикерпак «Котики»', '2025-02-01 10:00:00', 99.00, 3),
(5, 'VK Музыка подписка', '2025-01-25 19:00:00', 199.00, 1),
(5, 'Голоса 100 шт', '2025-01-28 20:30:00', 490.00, 2);
ROW_NUMBER FIRST_VALUE оконные функции первая запись
Это задание для уровня Junior. Подходит для начинающих аналитиков, проверяет базовые знания SQL/Python/статистики.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: ROW_NUMBER, FIRST_VALUE, оконные функции, первая запись.
На реальном собеседовании на подобную задачу отводится 5-10 минут — проверяется скорость и базовая грамотность. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания