Текущая полоса активных дней

Средняя Временные ряды

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

Таблица daily_login содержит id, user_id, login_date. Для каждого юзера посчитайте текущую полосу подряд активных дней (заканчивающуюся на 2024-01-10). Активность каждый день — записи в таблице. Полоса прерывается, если хотя бы один день между логинами пропущен. Выведите user_id, current_streak. Отсортируйте по current_streak DESC, user_id ASC.

Схема данных

CREATE TABLE daily_login (id INTEGER PRIMARY KEY, user_id INTEGER, login_date TEXT);

Темы

julianday GROUP BY JOIN CTE

Подсказки

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

Задача «Текущая полоса активных дней» учит решать задачи по теме «Временные ряды» так, как это спрашивают на собеседовании аналитика данных. Такие задачи регулярно дают на собеседованиях аналитиков данных. Уровень средний — типичная боевая задача на уверенное владение SQL.

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

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

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

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