**Контекст:** Задание по мотивам реального тестового в ivi. Аналитик контента сравнивает просмотры платного (SVOD) и бесплатного (AVOD) контента на новых платформах.
**Данные:**
[см. код в задании]
**Задание:**
1. Посчитайте количество просмотров по дням в разрезе paid_type (svod / avod)
2. Учитывайте только платформы 10 (SmartTV) и 11 (Mobile)
3. Ограничьте выборку последними 30 днями от текущей даты
4. Выведите watch_date, paid_type и количество просмотров
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE content (
content_id INT PRIMARY KEY,
title VARCHAR(300) NOT NULL,
paid_type VARCHAR(10) NOT NULL, -- 'svod' или 'avod'
compilation_id INT -- NULL = самостоятельный контент
);
CREATE TABLE content_watch (
id SERIAL PRIMARY KEY,
user_id INT NOT NULL,
content_id INT NOT NULL,
platform_id INT NOT NULL, -- 10 = SmartTV app, 11 = Mobile app
watch_date DATE NOT NULL,
watch_duration_sec INT NOT NULL
);
INSERT INTO content (content_id, title, paid_type, compilation_id) VALUES
(1, 'Фильм А', 'svod', NULL),
(2, 'Фильм Б', 'avod', NULL),
(3, 'Серия С1Е01', 'svod', 100),
(4, 'Серия С1Е02', 'svod', 100),
(5, 'Фильм В', 'avod', NULL),
(6, 'Серия С2Е01', 'avod', 200);
INSERT INTO content_watch (user_id, content_id, platform_id, watch_date, watch_duration_sec) VALUES
(1, 1, 10, '2025-03-01', 5400),
(2, 1, 11, '2025-03-01', 3600),
(3, 2, 10, '2025-03-01', 4200),
(4, 2, 10, '2025-03-02', 4800),
(5, 3, 11, '2025-03-01', 2700),
(6, 4, 10, '2025-03-02', 3000),
(7, 5, 11, '2025-03-02', 3900),
(1, 1, 10, '2025-03-02', 5400),
(2, 3, 10, '2025-03-02', 2800),
(8, 6, 11, '2025-03-01', 2500);
JOIN GROUP BY DATE фильтрация CASE WHEN
Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: JOIN, GROUP BY, DATE, фильтрация, CASE WHEN.
На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания