Таблица first_orders содержит user_id, first_order_date. Таблица orders содержит user_id, order_date. Посчитайте Day-7 retention для пользователей в зависимости от дня недели первого заказа (пн=1..вс=7). Выведите first_day_of_week, total_users, retained_d7, retention_pct.
CREATE TABLE first_orders (user_id INTEGER PRIMARY KEY, first_order_date TEXT);
CREATE TABLE orders (user_id INTEGER, order_date TEXT);
RETENTION STRFTIME DATE CASE GROUP BY
Задача «Простой retention по дню недели» учит считать удержание (retention) когортным методом на чистом SQL. Такие задачи регулярно дают на собеседованиях аналитиков данных. Уровень лёгкий — это база, которую должен уверенно держать каждый аналитик.
Сначала разберись со схемой данных и пойми, какой результат нужен на выходе. Определи, какие таблицы и поля задействованы, и собирай запрос пошагово: фильтрация → соединение или группировка → итоговый отбор и сортировка. Проверь результат на крайних случаях — NULL, дубликаты, пустые группы. Свой запрос сразу прогоняешь автопроверкой в интерактивной SQL-песочнице на реальной базе (SQLite и PostgreSQL 16 прямо в браузере).
Разбор темы с примерами — в гайде «Retention-анализ в SQL». Хочешь системно с нуля — пройди бесплатный курс «SQL с нуля».
Решить в интерактивной SQL-песочнице → ← Все SQL-задачи