Kategorien:

Aggregatfunktionen (Kardinalitätsschätzung), Fensterfunktionen

HLL

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ätzung der Anzahl unterschiedlicher Werte.

Aliasse:

APPROX_COUNT_DISTINCT.

Siehe auch:

HLL_ACCUMULATE , HLL_COMBINE , HLL_ESTIMATE

Syntax

Aggregatfunktion

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

HLL(*)

Fensterfunktionen

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

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

Argumente

Ausdruck1

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

Ausdruck2

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

Rückgabewerte

Der Datentyp des zurückgegebenen Werts ist INTEGER.

Nutzungshinweise

  • DISTINCT kann als Argument eingefügt werden, hat jedoch keine Auswirkungen.

  • 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

Im folgenden Beispiel wird die Verwendung von HLL und APPROX_COUNT_DISTINCT veranschaulicht: Im folgenden Beispiel werden sowohl COUNT(DISTINCT i) als auch APPROX_COUNT_DISTINCT(i) aufgerufen, um zu unterstreichen, dass die Ergebnisse nicht immer genau übereinstimmen.

SELECT COUNT(i), COUNT(DISTINCT i), APPROX_COUNT_DISTINCT(i), HLL(i)
  FROM sequence_demo;

Ausgabe:

Die Ergebnisse können variieren, da APPROX_COUNT_DISTINCT() eine Approximation und keinen genauen Wert zurückgibt.

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 |                     1030 |   1030 |
+----------+-------------------+--------------------------+--------+