PERCENTILE_CONT
Gibt ein Perzentil zurück, also den Wert, unter dem der angegebene Anteil der Gruppenwerte liegt; zwischen benachbarten Werten berechnet es einen Zwischenwert.
PostgreSQL 17.5
PERCENTILE_CONT(fraction) WITHIN GROUP (ORDER BY expression)Parameter
- fractiondouble precision
- Anteil von 0 bis 1, zum Beispiel 0.5 für den Median; auch ein Array von Anteilen ist möglich
- expressiondouble precision | interval
- Numerischer Ausdruck oder Intervall, nach dem die Werte sortiert werden
Rückgabewert
Zahl (double precision) oder Intervall; ein Array, wenn fraction ein Array ist; NULL bei leerer Menge
Beispiele
Median und Durchschnittspreis
PostgreSQL 17.5
SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (
ORDER BY unit_price
) AS median,
AVG(unit_price) AS average
FROM Payments;Medianpreis je Familienmitglied
PostgreSQL 17.5
SELECT family_member,
PERCENTILE_CONT(0.5) WITHIN GROUP (
ORDER BY unit_price
) AS median_price
FROM Payments
GROUP BY family_member
ORDER BY family_member;Quartile in einem Aufruf
PostgreSQL 17.5
SELECT PERCENTILE_CONT(ARRAY [0.25, 0.5, 0.75]) WITHIN GROUP (
ORDER BY unit_price
) AS quartiles
FROM Payments;Details
Die Funktion hat eine besondere Schreibweise: Der Ausdruck steht nicht in den Klammern, sondern in WITHIN GROUP (ORDER BY ...). NULL-Werte werden ignoriert.
Fällt die Position zwischen zwei Werte, wird das Ergebnis zwischen ihnen berechnet: Für 1, 2, 3 und 10 ist der Median 2.5. Um einen der vorhandenen Werte zu bekommen, verwende PERCENTILE_DISC. Anders als AVG hängt der Median kaum von seltenen sehr großen Werten ab.