Таблица users содержит id, registered_at. Таблица activity содержит user_id, activity_date. Для когорт по неделе регистрации посчитайте Day-1, Day-7, Day-30 retention. Выведите cohort_week, users, ret_d1, ret_d7, ret_d30 (в процентах, округлить до 1).
CREATE TABLE users (id INTEGER PRIMARY KEY, registered_at TEXT);
CREATE TABLE activity (user_id INTEGER, activity_date TEXT);
RETENTION COHORT CTE DATE CASE LEFT JOIN
Задача «Retention по когортам (Day 1, 7, 30)» учит считать удержание (retention) когортным методом на чистом SQL. Такие задачи регулярно дают на собеседованиях аналитиков данных. Уровень средний — типичная боевая задача на уверенное владение SQL.
Сначала разберись со схемой данных и пойми, какой результат нужен на выходе. Определи, какие таблицы и поля задействованы, и собирай запрос пошагово: фильтрация → соединение или группировка → итоговый отбор и сортировка. Проверь результат на крайних случаях — NULL, дубликаты, пустые группы. Свой запрос сразу прогоняешь автопроверкой в интерактивной SQL-песочнице на реальной базе (SQLite и PostgreSQL 16 прямо в браузере).
Разбор темы с примерами — в гайде «Retention-анализ в SQL». Хочешь системно с нуля — пройди бесплатный курс «SQL с нуля».
Решить в интерактивной SQL-песочнице → ← Все SQL-задачи