approx_percentile-Aggregatfunktion

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

Gibt das ungefähre Perzentil von expr in der Gruppe zurück.

Syntax

approx_percentile ( [ALL | DISTINCT] expr, percentile [, accuracy] ) [ FILTER ( WHERE cond ) ]

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

Argumente

  • expr: Ein numerischer Ausdruck.
  • percentile: Ein numerisches Literal zwischen 0 und 1 oder ein Literalarray mit numerischen Werten, die jeweils zwischen 0 und 1 liegen.
  • accuracy: Ein INTEGER-Literal größer als 0. Wenn „accuracy“ ausgelassen wird, wird der Wert auf 10000 festgelegt.
  • cond: Ein optionaler boolescher Ausdruck, der die für die Aggregation verwendeten Zeilen filtert.

Gibt zurück

Die Aggregatfunktion gibt den Ausdruck zurück, bei dem es sich um den kleinsten Wert in der geordneten Gruppe handelt (sortiert vom kleinsten zum größten Wert), sodass nicht mehr als percentile von expr-Werten kleiner als oder gleich diesem Wert ist.

Wenn percentile ein Array ist, gibt approx_percentile das ungefähre Perzentilarray von expr bei percentile zurück. Der accuracy-Parameter steuert die Näherungsgenauigkeit auf Kosten von Arbeitsspeicher. Ein höherer accuracy-Wert ergibt eine bessere Genauigkeit. 1.0/accuracy ist der relative Fehler der Näherung. Diese Funktion ist ein Synonym für die percentile_approx-Aggregatfunktion.

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

Beispiele

> SELECT approx_percentile(col, array(0.5, 0.4, 0.1), 100) FROM VALUES (0), (1), (2), (10) AS tab(col);
 [1,1,0]

> SELECT approx_percentile(col, 0.5, 100) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
 6

> SELECT approx_percentile(DISTINCT col, 0.5, 100) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
 7