Когортная таблица по неделям

Средняя Retention-анализ

Условие задачи

Таблицы users (id, registered_at TEXT) и orders (id, user_id, created_at TEXT). Для каждой недельной когорты (неделя регистрации) посчитайте, сколько пользователей сделали хотя бы один заказ на неделе 0 (той же неделе) и неделе 1 (следующей). Выведите cohort_week, cohort_size, active_week_0, active_week_1.

Схема данных

CREATE TABLE users (id INTEGER PRIMARY KEY, registered_at TEXT);
CREATE TABLE orders (id INTEGER PRIMARY KEY, user_id INTEGER, created_at TEXT);

Темы

STRFTIME JULIANDAY CASE WHEN COHORT

Подсказки

Что проверяет эта задача

Задача «Когортная таблица по неделям» учит считать удержание (retention) когортным методом на чистом SQL. Такие задачи регулярно дают на собеседованиях аналитиков данных. Уровень средний — типичная боевая задача на уверенное владение SQL.

Как подступиться к решению

Сначала разберись со схемой данных и пойми, какой результат нужен на выходе. Определи, какие таблицы и поля задействованы, и собирай запрос пошагово: фильтрация → соединение или группировка → итоговый отбор и сортировка. Проверь результат на крайних случаях — NULL, дубликаты, пустые группы. Свой запрос сразу прогоняешь автопроверкой в интерактивной SQL-песочнице на реальной базе (SQLite и PostgreSQL 16 прямо в браузере).

Разбор темы с примерами — в гайде «Retention-анализ в SQL». Хочешь системно с нуля — пройди бесплатный курс «SQL с нуля».

Решить в интерактивной SQL-песочнице → ← Все SQL-задачи