Freigeben über


percentile_approx-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. Diese Funktion ist ein Synonym für die approx_percentile-Aggregatfunktion.

Syntax

percentile_approx ( [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 Genauigkeit 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 bis zum größten Wert), sodass nicht mehr als percentile von expr-Werten kleiner als der Wert oder gleich diesem Wert ist. Wenn percentile ein Array ist, gibt percentile_approx das ungefähre Perzentilarray von expr am angegebenen Perzentil zurück.

Der accuracy-Parameter steuert die Näherungsgenauigkeit auf Kosten von Arbeitsspeicher. Ein höherer Genauigkeitswert ergibt eine bessere Genauigkeit. 1.0/accuracy ist der relative Fehler der Näherung.

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

Beispiele

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

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

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