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

25. Самая длинная серия дней с новыми объявлениями

Сложная

В listings — объявления с временем создания created_at. День засчитывается продавцу, если в этот календарный день он подал хотя бы одно объявление.

Для каждого продавца верните самую длинную серию дней подряд: seller_id, streak_days — длина, streak_start — первый день серии (date). Если серий одинаковой длины несколько, берите более раннюю. Порядок — по streak_days по убыванию, затем по seller_id.

В работе: Сегментация продавцов: ежедневно публикующие — почти всегда профессионалы, им предлагают тариф для бизнеса.

Таблицы

listings — одна строка — одно объявление

КолонкаТипЧто значит
listing_idintключ
seller_idintпродавец
created_attimestampвремя создания

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

listings · 6 строк

listing_idseller_idcreated_at
1112026-08-01T10:00:00
2112026-08-02T11:00:00
3112026-08-03T09:30:00
4112026-08-05T12:00:00
5122026-08-10T08:00:00
6122026-08-11T22:00:00

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

seller_idstreak_daysstreak_start
1132026-08-01
1222026-08-10
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
seller_id, streak_days, streak_start
пропуски и островаоконные функциидатыDISTINCT

Источник: на данных Авито: публикации продавцов. Условие пересказано своими словами.

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