Ежедневные просмотры SVOD/AVOD

Middle SQL Медиа

Условие задания

**Контекст:** Задание по мотивам реального тестового в 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

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "Ежедневные просмотры SVOD/AVOD"?

Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: JOIN, GROUP BY, DATE, фильтрация, CASE WHEN.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «SQL»?

На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.

← Все задания