- Kategorien:
Aggregationsfunktionen (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ätzen der Anzahl diskreter Werte.
- Aliasse:
- Siehe auch:
Syntax¶
Aggregatfunktion
HLL( [ DISTINCT ] <expr1> [ , ... ] )
HLL(*)
Fensterfunktionen
HLL( [ DISTINCT ] <expr1> [ , ... ] ) OVER ( [ PARTITION BY <expr2> ] )
HLL(*) 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¶
DISTINCT
kann als Argument eingefügt werden, hat jedoch keine Auswirkungen.Weitere Informationen zu NULL-Werten und Aggregatfunktionen finden Sie unter Aggregationsfunktionen 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 betonen, dass die beiden Ergebnisse nicht immer genau übereinstimmen.
Die genaue Ausgabe der folgenden Abfrage kann variieren, da APPROX_COUNT_DISTINCT() eine Approximation (Näherungswert) und keinen exakten 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 | 1007 | 1007 | +----------+-------------------+--------------------------+--------+