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

210. 90-й перцентиль старта видео по регионам

Средняя

В playbacks — попытки посмотреть ролик в VK Видео. startup_ms — сколько миллисекунд прошло от нажатия до первого кадра; NULL, если ролик так и не запустился.

Для каждого региона, где не меньше трёх успешных запусков, верните region, started — число успешных запусков и p90_ms — 90-й перцентиль startup_ms с линейной интерполяцией (как percentile_cont), округлённый до целого. Незапустившиеся ролики в расчёт не берите. Порядок — по region.

В работе: Мониторинг CDN: в каком регионе у каждого десятого зрителя видео стартует дольше нормы.

Таблицы

playbacks — одна строка — одна попытка воспроизведения

КолонкаТипЧто значит
play_idintключ
regiontextрегион зрителя
video_idintролик
startup_msintдо первого кадра, NULL — не запустился

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

playbacks · 12 строк

play_idregionvideo_idstartup_ms
1Москва10420
2Москва11380
3Москва12510
4Москва101460
5Москва13NULL
6Новосибирск10900
7Новосибирск141210
8Новосибирск152730
9Новосибирск16640
10Новосибирск17NULL
11Хабаровск101800
12Хабаровск11NULL

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

regionstartedp90_ms
Москва41175
Новосибирск42274
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 5 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
region, started, p90_ms
медианаGROUP BYHAVINGNULL

Источник: наша задача на данных VK: время старта роликов в VK Видео. Условие пересказано своими словами.