Справочник по функциям

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);
contdisc
2.52

Медианная дата рождения

PostgreSQL 17.5
SELECT PERCENTILE_DISC(0.5) WITHIN GROUP (
		ORDER BY birthday
	) AS median_birthday
FROM FamilyMembers;
median_birthday
1968-09-06

Подробности

В отличие от PERCENTILE_CONT, всегда возвращает одно из значений набора, поэтому подходит и для дат и строк. Выражение указывается в WITHIN GROUP (ORDER BY ...).

Смотрите также