Freigeben über


percentile-Aggregatfunktion

Gilt für: durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Gibt den genauen Perzentilwert von expr am angegebenen percentage-Wert in einer Gruppe zurück.

Syntax

percentile ( [ALL | DISTINCT] expr, percentage [, frequency] ) [FILTER ( WHERE cond ) ]

Diese Funktion kann auch mithilfe der OVER-Klausel als Fensterfunktion aufgerufen werden.

Argumente

  • expr: Ein Ausdruck, der in einen numerischen Wert ausgewertet wird.
  • percentage: Ein numerischer Ausdruck zwischen 0 und 1 oder ein ARRAY numerischer Ausdrücke, die jeweils zwischen 0 und 1 liegen.
  • frequency: Ein optionales integrales Zahlenliteral, das größer als 0 ist.
  • cond: Ein optionaler boolescher Ausdruck, der die für die Aggregation verwendeten Zeilen filtert.

Gibt zurück

DOUBLE, wenn percentage numerisch ist, oder ein ARRAY von DOUBLE, wenn percentage ein ARRAY ist.

„frequency“ beschreibt, wie oft expr gezählt werden muss. Wenn „frequency“ für einen bestimmten Wert 10 ist, wird der betreffende Wert mit einer Häufigkeit von 1 zehnmal im Fenster angezeigt wird. Der Standardwert für „frequency“ ist 1.

Wenn DISTINCT angegeben wird, wird die Funktion nur für eine eindeutige Menge von expr-Werten ausgeführt.

Beispiele

> SELECT percentile(col, 0.3) FROM VALUES (0), (10), (10) AS tab(col);
 6.0

> SELECT percentile(DISTINCT col, 0.3) FROM VALUES (0), (10), (10) AS tab(col);
 3.0

> SELECT percentile(col, 0.3, freq) FROM VALUES (0, 1), (10, 2) AS tab(col, freq);
 6.0

> SELECT percentile(col, array(0.25, 0.75)) FROM VALUES (0), (10) AS tab(col);
 [2.5,7.5]