approx_count_distinct
-Aggregatfunktion
Gilt für: Databricks SQL Databricks Runtime
Gibt die geschätzte Anzahl unterschiedlicher Werte in expr
innerhalb der Gruppe zurück.
Die Implementierung verwendet die dichte Version des HyperLogLog++ (HLL++)-Algorithmus, einen hochmodernen Kardinalitätsschätzungsalgorithmus.
Die Ergebnisse sind innerhalb eines Standardwerts von 5 % genau, der sich aus dem Wert der maximalen relativen Standardabweichung ableitet, obwohl dies mit dem relativeSD
-Parameter wie unten beschrieben konfiguriert werden kann.
Syntax
approx_count_distinct(expr[, relativeSD]) [FILTER ( WHERE cond ) ]
Diese Funktion kann auch mithilfe der OVER
-Klausel als Fensterfunktion aufgerufen werden.
Argumente
expr
: Kann einen beliebigen Typ haben, für den Äquivalenz definiert ist.relativeSD
: Definiert die maximal zulässige relative Standardabweichung.cond
: Ein optionaler boolescher Ausdruck, der die für die Aggregation verwendeten Zeilen filtert.
Gibt zurück
Ein BIGINT-Wert.
Beispiele
> SELECT approx_count_distinct(col1) FROM VALUES (1), (1), (2), (2), (3) tab(col1);
3
> SELECT approx_count_distinct(col1) FILTER(WHERE col2 = 10)
FROM VALUES (1, 10), (1, 10), (2, 10), (2, 10), (3, 10), (1, 12) AS tab(col1, col2);
3