Die Funktion APPROXIMATE PERCENTILE_DISC - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die Funktion APPROXIMATE PERCENTILE_DISC

APPROXIMATE PERCENTILE_DISC ist eine Funktion für die inverse Verteilung, die ein diskretes Verteilungsmodell annimmt. Sie empfängt einen Perzentilwert und eine Sortierspezifikation und gibt ein Element aus dem angegebenen Satz zurück. Die Annäherung ermöglicht eine sehr viel schnellere Ausführung der Funktion bei einer niedrigen relativen Fehlerquote von ungefähr 0,5 Prozent.

APPROXIMATE PERCENTILE_DISC verwendet für einen bestimmten Perzentilwert einen zusammenfassenden Quantil-Algorithmus, um das diskrete Perzentil des Ausdrucks in der ORDER BY-Klausel anzunähern. APPROXIMATE PERCENTILE_DISC gibt den Wert mit dem kleinsten kumulativen Verteilungswert (in Bezug auf dieselbe Sortierspezifikation) zurück, der größer als oder gleich Perzentil ist.

Syntax

APPROXIMATE PERCENTILE_DISC ( percentile ) WITHIN GROUP (ORDER BY expr)

Argumente

percentile

Numerische Konstante zwischen 0 und 1. Null-Werte werden bei der Berechnung ignoriert.

WITHIN GROUP ( ORDER BY expr)

Klausel, die numerische oder Datum-/Zeitwerte angibt, um das Perzentil zu sortieren und zu verarbeiten.

Rückgabewert

Derselbe Datentyp wie der ORDER BY-Ausdruck in der WITHIN GROUP-Klausel.

Nutzungshinweise

Wenn die Anweisung APPROXIMATE PERCENTILE_DISC eine GROUP BY-Klausel enthält, ist der Ergebnissatz begrenzt. Das Limit ist vom Knotentyp und der Anzahl der Knoten abhängig. Wenn das Limit überschritten wird, schlägt die Funktion fehl und gibt den folgenden Fehler zurück.

GROUP BY limit for approximate percentile_disc exceeded.

Wenn Sie mehr Gruppen auswerten müssen, als das Limit zulässt, sollten Sie die Verwendung von in Betracht ziehen Die Funktion PERCENTILE_CONT.

Beispiele

Im folgenden Beispiel werden die Anzahl der Verkäufe, der Gesamtumsatz und der fünfzigste Perzentilwert für die 10 Topdaten zurückgegeben.

select top 10 date.caldate, count(totalprice), sum(totalprice), approximate percentile_disc(0.5) within group (order by totalprice) from listing join date on listing.dateid = date.dateid group by date.caldate order by 3 desc; caldate | count | sum | percentile_disc -----------+-------+------------+---------------- 2008-01-07 | 658 | 2081400.00 | 2020.00 2008-01-02 | 614 | 2064840.00 | 2178.00 2008-07-22 | 593 | 1994256.00 | 2214.00 2008-01-26 | 595 | 1993188.00 | 2272.00 2008-02-24 | 655 | 1975345.00 | 2070.00 2008-02-04 | 616 | 1972491.00 | 1995.00 2008-02-14 | 628 | 1971759.00 | 2184.00 2008-09-01 | 600 | 1944976.00 | 2100.00 2008-07-29 | 597 | 1944488.00 | 2106.00 2008-07-23 | 592 | 1943265.00 | 1974.00