- Kategorien:
- Aggregatfunktionen (Percentile Estimation) , Fensterfunktionen 
APPROX_PERCENTILE¶
Gibt einen Näherungswert für das gewünschte Perzentil zurück (d. h. wenn die c-Spalte n Zahlen hat, gibt APPROX_PERCENTILE(c, p) eine Zahl zurück, sodass ungefähr n * p der Zahlen in c kleiner als die zurückgegebene Zahl sind).
Diese Funktion verwendet eine verbesserte Version des t-Digest-Algorithmus. Weitere Informationen dazu finden Sie unter Schätzen von Perzentilwerten.
Syntax¶
Aggregatfunktion
APPROX_PERCENTILE( <expr> , <percentile> )
Fensterfunktionen
APPROX_PERCENTILE( <expr> , <percentile> ) OVER ( [ PARTITION BY <expr3> ] )
Argumente¶
- expr
- Ein gültiger Ausdruck, z. B. ein Spaltenname, der einen numerischen Wert ergibt. 
- percentile
- Ein konstanter tatsächlicher Wert, der größer gleich - 0.0und kleiner als- 1.0ist. Dies gibt das Perzentil an (von 0 bis 99,999…). Beispiel: Der Wert 0,65 gibt das 65. Perzentil an.
- expr3
- Dies ist der optionale Ausdruck zum Gruppieren von Zeilen in Partitionen. 
Rückgabewerte¶
Die Ausgabe wird als DOUBLE-Wert zurückgegeben.
Nutzungshinweise¶
- Perzentile funktionieren nur bei numerischen Werten. Daher muss - exprWerte erzeugen, die Zahlen sind oder sich in Zahlen umwandeln lassen.
- Die zurückgegebenen Werte sind nicht unbedingt im Dataset enthalten. 
- Der zurückgegebene Wert ist eine Approximation. Die Größe des Datasets und die Datenschiefe im Dataset beeinflussen die Genauigkeit der Approximation. 
- Wenn diese Funktion als Fensterfunktion aufgerufen wird, wird sie nicht unterstützt: - Eine ORDER BY-Klausel innerhalb der OVER-Klausel. 
- Explizite Fensterrahmen. 
 
Beispiele¶
Verwendungsbeispiel für die Funktion APPROX_PERCENTILE:
Erstellen Sie eine Tabelle, und füllen Sie diese mit Werten:
CREATE TABLE testtable (c1 INTEGER); INSERT INTO testtable (c1) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
Ausführen von Abfragen und Anzeigen der Ausgabe:
SELECT APPROX_PERCENTILE(c1, 0.1) FROM testtable; +----------------------------+ | APPROX_PERCENTILE(C1, 0.1) | |----------------------------| | 1.5 | +----------------------------+SELECT APPROX_PERCENTILE(c1, 0.5) FROM testtable; +----------------------------+ | APPROX_PERCENTILE(C1, 0.5) | |----------------------------| | 5.5 | +----------------------------+
Beachten Sie, dass der in diesem Fall zurückgegebene Wert höher ist als der tatsächliche Wert im Dataset:
SELECT APPROX_PERCENTILE(c1, 0.999) FROM testtable; +------------------------------+ | APPROX_PERCENTILE(C1, 0.999) | |------------------------------| | 10.5 | +------------------------------+