Teilen ü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 -Klausel als OVER aufgerufen werden.

Argumente

  • expr: Ein Ausdruck, der in einen numerischen Wert ausgewertet wird.
  • percentage: Ein numerischer Ausdruck zwischen 0 und 1 oder eine ARRAY von numerischen Ausdrücken, 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.

Rückgabe

DOUBLE, wenn percentage numerisch ist, oder ein ARRAY<DOUBLE>, wenn percentage ein ARRAY ist.

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

Wenn DISTINCT angegeben wird, wird die Funktion nur für einen eindeutigen Satz von expr Werten verwendet.

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]