Kategorien:

Aggregatfunktionen (Kardinalitätsschätzung), Fensterfunktionen

APPROX_COUNT_DISTINCT

Verwendet HyperLogLog, um eine Approximation der spezifischen Kardinalität der Eingabe zurückzugeben (d. h. HLL(col1, col2, ... ) gibt eine Approximation von COUNT(DISTINCT col1, col2, ... ) zurück).

Weitere Informationen zu HyperLogLog finden Sie unter Schätzen der Anzahl diskreter Werte.

Aliasse:

HLL.

Siehe auch:

HLL_ACCUMULATE, HLL_COMBINE, HLL_ESTIMATE

Syntax

Aggregatfunktion

APPROX_COUNT_DISTINCT( [ DISTINCT ] <expr1>  [ , ... ] )

APPROX_COUNT_DISTINCT(*)

Fensterfunktionen

APPROX_COUNT_DISTINCT( [ DISTINCT ] <expr1>  [ , ... ] ) OVER ( [ PARTITION BY <expr2> ] )

APPROX_COUNT_DISTINCT(*) OVER ( [ PARTITION BY <expr2> ] )

Argumente

expr1

Dies ist der Ausdruck, für den Sie die Anzahl der unterschiedlichen Werte wissen möchten.

expr2

Dies ist der optionale Ausdruck zum Gruppieren von Zeilen in Partitionen.

Rückgabewerte

Der Datentyp des zurückgegebenen Werts ist INTEGER.

Nutzungshinweise

  • Obwohl die Berechnung eine Approximation ist, ist sie deterministisch. Wenn diese Funktion mit den gleichen Eingabedaten aufgerufen wird, gibt diese Funktion die gleichen Ergebnisse zurück.

  • Weitere Informationen zu NULL-Werten und Aggregatfunktionen finden Sie unter Aggregatfunktionen und NULL-Werte.

  • Bei Verwendung als Fensterfunktion:

    • Diese Funktion unterstützt nicht:

      • ORDER BY-Unterklausel in der OVER()-Klausel

      • Fensterrahmen

Beispiele

This example shows how to use APPROX_COUNT_DISTINCT and its alias HLL. This example calls both COUNT(DISTINCT i) and APPROX_COUNT_DISTINCT(i) to emphasize that the results of those two functions do not always match exactly.

The exact output of the following query might vary because APPROX_COUNT_DISTINCT() returns an approximation, not an exact value.

SELECT COUNT(i), COUNT(DISTINCT i), APPROX_COUNT_DISTINCT(i), HLL(i)
  FROM sequence_demo;
+----------+-------------------+--------------------------+--------+
| COUNT(I) | COUNT(DISTINCT I) | APPROX_COUNT_DISTINCT(I) | HLL(I) |
|----------+-------------------+--------------------------+--------|
|     1024 |              1024 |                     1007 |   1007 |
+----------+-------------------+--------------------------+--------+
Zurück zum Anfang