PERCENTILE_DISC
Возвращает процентиль — первое значение группы, на котором накопленная доля значений достигает заданной.
PostgreSQL 17.5
PERCENTILE_DISC(fraction) WITHIN GROUP (ORDER BY expression)Параметры
- fractiondouble precision
- Доля от 0 до 1, например 0.5 для медианы
- expression
- Выражение любого сортируемого типа: число, строка или дата
Возвращаемое значение
Значение того же типа, что и expression; NULL для пустого набора
Примеры
PERCENTILE_CONT и PERCENTILE_DISC
PostgreSQL 17.5
SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (
ORDER BY x
) AS cont,
PERCENTILE_DISC(0.5) WITHIN GROUP (
ORDER BY x
) AS disc
FROM (
VALUES (1),
(2),
(3),
(10)
) AS t(x);Медианная дата рождения
PostgreSQL 17.5
SELECT PERCENTILE_DISC(0.5) WITHIN GROUP (
ORDER BY birthday
) AS median_birthday
FROM FamilyMembers;Подробности
В отличие от PERCENTILE_CONT, всегда возвращает одно из значений набора, поэтому подходит и для дат и строк. Выражение указывается в WITHIN GROUP (ORDER BY ...).