**Контекст:** Маркетинг финтех-сервиса запустил кампанию push-уведомлений. Часть аудитории (контрольная группа) не получала пуши. Нужно построить воронку и сравнить с контролем.
**Данные:**
[см. код в задании]
**Задание для конкретной кампании (campaign_id = 'spring_2025'):**
1. Постройте воронку для тестовой группы: sent → delivered → opened → clicked → converted
2. Для каждого шага: количество пользователей и конверсия от предыдущего шага (%)
3. Для контрольной группы: количество и конверсия (converted / total)
4. Рассчитайте uplift: конверсия теста − конверсия контроля
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE push_campaigns (
id SERIAL PRIMARY KEY,
campaign_id VARCHAR(50) NOT NULL,
user_id INT NOT NULL,
is_control BOOLEAN NOT NULL DEFAULT FALSE, -- TRUE = контрольная группа
sent_at TIMESTAMP, -- NULL для контроля
delivered_at TIMESTAMP,
opened_at TIMESTAMP,
clicked_at TIMESTAMP
);
CREATE TABLE conversions (
id SERIAL PRIMARY KEY,
user_id INT NOT NULL,
campaign_id VARCHAR(50) NOT NULL,
converted_at TIMESTAMP NOT NULL,
revenue NUMERIC(10,2) NOT NULL
);
воронка FILTER CASE WHEN A/B контрольная группа
Это задание для уровня Senior. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: воронка, FILTER, CASE WHEN, A/B контрольная группа.
На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания