Максимальная серия логинов (Gaps & Islands)

HardSQL
10:00
Лучше работает на десктопе
Gaps and IslandsWindow FunctionsROW_NUMBERDATE

Дана таблица logins:

КолонкаТип
user_idINTEGER
login_dateTEXTДата логина (YYYY-MM-DD), уникальная для каждого user_id
Для каждого пользователя найдите максимальную серию подряд идущих дней (streak), в которые он заходил.

Верните user_id и max_streak. Отсортируйте по max_streak по убыванию, затем по user_id.

Пример: Если пользователь заходил 2024-01-01, 2024-01-02, 2024-01-03, 2024-01-05, 2024-01-06, то его максимальная серия = 3 (первые три дня).

💡 Это классическая задача "Gaps and Islands" — одна из самых частых на собесах уровня Hard.

Задача основана на вопросах с собеседований в Яндекс и Avito.

Консоль
Нажмите Run или Ctrl+Enter для запуска