CUME_DIST
Gibt den Anteil der Zeilen der Fensterpartition zurück, die vor der aktuellen Zeile oder zusammen mit ihr kommen, von 0 bis 1.
PostgreSQL 17.5
CUME_DIST() OVER ([PARTITION BY ...] [ORDER BY ...])Parameter
- PARTITION BYoptional
- Spalten, nach denen die Zeilen in Partitionen aufgeteilt werden; die Anteile werden in jeder separat berechnet
- ORDER BYoptional
- Reihenfolge der Zeilen, nach der der Anteil berechnet wird
Rückgabewert
Gleitkommazahl (double precision) größer als 0 und bis 1
Beispiele
PERCENT_RANK und CUME_DIST
PostgreSQL 17.5
SELECT unit_price,
ROUND(
PERCENT_RANK() OVER (
ORDER BY unit_price
)::numeric,
3
) AS pct_rank,
ROUND(
CUME_DIST() OVER (
ORDER BY unit_price
)::numeric,
3
) AS cume_dist
FROM Payments
ORDER BY unit_price;Anteil der Zahlungen, die nicht teurer sind
PostgreSQL 17.5
SELECT family_member,
unit_price,
ROUND(
CUME_DIST() OVER (
PARTITION BY family_member
ORDER BY unit_price
)::numeric,
2
) AS share_not_more
FROM Payments
ORDER BY family_member,
unit_price;Details
Berechnet wird die Anzahl der Zeilen mit einem ORDER BY-Wert, der nicht größer als der aktuelle ist, geteilt durch die Anzahl der Zeilen in der Partition. Anders als bei PERCENT_RANK ist das Ergebnis nie 0, und für die letzte Zeile ist es immer 1.