Net Revenue Retention (NRR)

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

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

Таблица subscriptions содержит id, user_id, mrr_amount, period_month (YYYY-MM). NRR = (MRR в текущем месяце от старых юзеров) / (MRR этих же юзеров в прошлом месяце) × 100. «Старые» = те, у кого был MRR в обоих месяцах. Посчитайте NRR за переход 2024-01 → 2024-02. Выведите nrr_pct (округлить до 1 знака).

Схема данных

CREATE TABLE subscriptions (id INTEGER PRIMARY KEY, user_id INTEGER, mrr_amount REAL, period_month TEXT);

Темы

CTE LEFT JOIN SUM COALESCE ROUND

Подсказки

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

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

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

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

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

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