**Контекст:** SaaS-компания хранит данные о подписках и отменах. Нужно оценить доход от активных подписок по каждому тарифному плану.
**Данные:**
[см. код в задании]
**Задание:**
Для каждого тарифного плана выведите:
1. Количество всех подписок
2. Количество отменённых
3. Количество активных
4. Суммарный месячный доход от **активных** подписок
Отсортируйте по доходу по убыванию.
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE subscriptions (
id SERIAL PRIMARY KEY,
user_id INT NOT NULL,
plan VARCHAR(50) NOT NULL, -- 'free', 'basic', 'pro', 'enterprise'
monthly_price NUMERIC(10,2) NOT NULL,
started_at TIMESTAMP NOT NULL
);
CREATE TABLE cancellations (
id SERIAL PRIMARY KEY,
subscription_id INT REFERENCES subscriptions(id),
cancelled_at TIMESTAMP NOT NULL,
reason VARCHAR(200)
);
LEFT JOIN COALESCE агрегация фильтрация
Это задание для уровня Junior. Подходит для начинающих аналитиков, проверяет базовые знания SQL/Python/статистики.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: LEFT JOIN, COALESCE, агрегация, фильтрация.
На реальном собеседовании на подобную задачу отводится 5-10 минут — проверяется скорость и базовая грамотность. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания