У меня есть таблица, содержащая 100 тысяч строк следующего формата:
UserID - Ранг - Значение - Первичный ключ
1236 ----- 00 ---- 233,4 ------- 1
1377 ----- 00 ---- 150,6 -------- 2
1287 ----- 01 ---- 167 ---------- 3
1343 ----- 01 ---- 134,5 -------- 4
1284 ---- 01 ---- 155,2 -------- 5
1386 ----- 02 ---- 302 ----------- 6
1372 ----- 02 ---- 108,3 7
Мне нужно вычислить 50-й процентиль, сгруппированный по рангу, что означает, что мне нужно получить такие результаты:
Ранг ----- 50-й процентиль
00 ----------…
01 ----------…
02 ----------…
50-й процентиль каждого ранга - это та строка с первичным ключом, равная 0,5-кратному количеству строк каждого ранга (то есть 0,5-кратное число, где rank =01, 0,5 раза, где рейтинг = 02, и т. Д.).Однако имейте в виду, что после того, как я получу 50-й процентиль ранга 00, 50-й процентиль ранга 01 будет расположен на уровне 0,5 * (количество строк с рангом 01) + (количество строк с рангом 00) и т. Д.
Как мне это сделать в PostgreSQL ?Ваша помощь очень ценится.