Войти Регистрация
Data base

96. Самая длинная серия повышенного спроса в зоне

Сложная

В surge — средний коэффициент повышенного спроса по зоне за час. Если в зоне за час не было заказов, строки нет.

Серия — подряд идущие часы, где coef не меньше 1.5. Пропущенный час разрывает серию.

Для каждой зоны, где был хотя бы один такой час, найдите самую длинную серию: zone, streak_start — начало первого часа серии, hours — длина. При равной длине берите более раннюю. Порядок по zone.

В работе: Поиск зон, где водителей не хватает часами подряд: туда нужны бонусы за выход на линию.

Таблицы

surge — одна строка — зона и час

КолонкаТипЧто значит
zonetextзона города
hour_starttimestampначало часа
coefnumericкоэффициент

Пример: данные

surge · 9 строк

zonehour_startcoef
Москва-Сити2026-03-02T07:00:001,2
Москва-Сити2026-03-02T08:00:001,6
Москва-Сити2026-03-02T09:00:001,9
Москва-Сити2026-03-02T10:00:001,4
Москва-Сити2026-03-02T18:00:001,7
Москва-Сити2026-03-02T19:00:002,1
Москва-Сити2026-03-02T20:00:001,8
Внуково2026-03-02T06:00:001,5
Внуково2026-03-02T07:00:001,1

Ожидаемый ответ

zonestreak_starthours
Внуково2026-03-02T06:00:001
Москва-Сити2026-03-02T18:00:003
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 5 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
zone, streak_start, hours
пропуски и островаоконные функциидатытоп-N в группе

Источник: на данных такси: почасовой коэффициент спроса по зонам. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.