approx_count_distinct-Aggregatfunktion

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert 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