Referencia de funciones

PERCENT_RANK

Devuelve el rango relativo de una fila en la partición de la ventana: la proporción de filas que van antes que ella, de 0 a 1.

PostgreSQL 17.9
PERCENT_RANK()

Valor devuelto

Número de coma flotante (double precision) de 0 a 1

Ejemplos

Rango relativo por fecha de nacimiento

PostgreSQL 17.9
SELECT member_name,
	birthday,
	PERCENT_RANK() OVER (
		ORDER BY birthday
	) AS pct_rank
FROM FamilyMembers;
member_namebirthdaypct_rank
Headley Quincey1960-05-130
Ernest Forrest1961-09-110.14285714285714285
Flavia Quincey1963-02-160.2857142857142857
Constance Forrest1968-09-060.42857142857142855
Andie Quincey1983-06-050.5714285714285714
Lela Quincey1985-06-070.7142857142857143
Annie Quincey1988-04-100.8571428571428571
Wednesday Addams2005-01-131

RANK y PERCENT_RANK para los precios

PostgreSQL 17.9
SELECT unit_price,
	RANK() OVER (
		ORDER BY unit_price
	) AS price_rank,
	ROUND(
		PERCENT_RANK() OVER (
			ORDER BY unit_price
		)::numeric,
		2
	) AS pct_rank
FROM Payments
ORDER BY unit_price;
unit_priceprice_rankpct_rank
710.00
710.00
830.07
830.07
830.07
1060.19
1670.22
2080.26
5990.30
100100.33

Detalles

Se calcula como (RANK − 1) / (número de filas de la partición − 1). Los valores iguales reciben el mismo rango. En una partición de una sola fila, el resultado es 0.

Véase también