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

23. Медиана времени ответа продавца

Сложная

Чат открывается по объявлению (chats), сообщения — в messages, sender = buyer или seller. Некоторые продавцы включили автоприветствие, и их сообщение может стоять в чате раньше покупательского.

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

Для каждой категории, где есть чаты, верните category, answered_chats — число отвеченных чатов и median_minutes — медиану времени ответа в минутах с одним знаком (NULL, если отвеченных нет). Порядок — по category.

В работе: Бейдж «Отвечает около часа» на карточке и сравнение категорий по скорости продавцов.

Таблицы

chats — один чат по объявлению

КолонкаТипЧто значит
chat_idintключ
listing_idintобъявление
categorytextкатегория объявления
buyer_idintпокупатель
seller_idintпродавец

messages — сообщения в чатах

КолонкаТипЧто значит
message_idintключ
chat_idintчат
sendertextbuyer / seller
sent_attimestampвремя отправки

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

chats · 4 строки

chat_idlisting_idcategorybuyer_idseller_id
1501Мебель1191
2502Мебель1292
3503Мебель1393
4504Детская одежда1494

messages · 9 строк

message_idchat_idsendersent_at
11buyer2026-06-01T10:00:00
21seller2026-06-01T10:05:00
32buyer2026-06-01T11:00:00
42seller2026-06-01T11:30:00
52buyer2026-06-01T11:31:00
63buyer2026-06-01T12:00:00
73seller2026-06-01T20:00:00
84buyer2026-06-02T09:00:00
94seller2026-06-02T09:12:00

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

categoryanswered_chatsmedian_minutes
Детская одежда112
Мебель330
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
category, answered_chats, median_minutes
медианаCTELEFT JOINдаты

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

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