Таблицы `ab_assignments(user_id, variant)` и `purchases(user_id)` (каждая строка = факт покупки). Посчитай conversion rate в каждой группе и относительный lift (treatment − control) / control. Колонки: `variant`, `conv_rate` (round 4), `users_n`. После основных строк — отдельная строка с `variant = 'lift'` и `conv_rate` = (rate_t - rate_c) / rate_c (round 4), `users_n` = NULL. Сортировка: сначала control, потом treatment, потом lift.
CREATE TABLE ab_assignments (user_id INTEGER PRIMARY KEY, variant TEXT);
CREATE TABLE purchases (user_id INTEGER);
ab_test conversion union cte
Задача «A/B конверсия + lift через SQL» учит решать задачи по теме «A/B-тестирование» так, как это спрашивают на собеседовании аналитика данных. Такие задачи регулярно дают на собеседованиях аналитиков данных. Уровень средний — типичная боевая задача на уверенное владение SQL.
Сначала разберись со схемой данных и пойми, какой результат нужен на выходе. Определи, какие таблицы и поля задействованы, и собирай запрос пошагово: фильтрация → соединение или группировка → итоговый отбор и сортировка. Проверь результат на крайних случаях — NULL, дубликаты, пустые группы. Свой запрос сразу прогоняешь автопроверкой в интерактивной SQL-песочнице на реальной базе (SQLite и PostgreSQL 16 прямо в браузере).
Разбор темы с примерами — в гайде «A/B-тестирование в SQL». Хочешь системно с нуля — пройди бесплатный курс «SQL с нуля».
Решить в интерактивной SQL-песочнице → ← Все SQL-задачи