PERCENT_RANK
Gibt den relativen Rang einer Zeile in der Fensterpartition zurück: den Anteil der Zeilen vor ihr, von 0 bis 1.
PostgreSQL 17.5
PERCENT_RANK() OVER ([PARTITION BY ...] [ORDER BY ...])Parameter
- PARTITION BYoptional
- Spalten, nach denen die Zeilen in Partitionen aufgeteilt werden; die Ränge werden in jeder separat berechnet
- ORDER BYoptional
- Reihenfolge der Zeilen, die den Rang bestimmt
Rückgabewert
Gleitkommazahl (double precision) von 0 bis 1
Beispiele
Relativer Rang nach Geburtsdatum
PostgreSQL 17.5
SELECT member_name,
birthday,
PERCENT_RANK() OVER (
ORDER BY birthday
) AS pct_rank
FROM FamilyMembers;RANK und PERCENT_RANK für Preise
PostgreSQL 17.5
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;Details
Berechnet wird (RANK − 1) / (Anzahl der Zeilen in der Partition − 1). Gleiche Werte bekommen denselben Rang. Bei einer Partition aus einer Zeile ist das Ergebnis 0.