approx_count_distinct
mängdfunktion
Gäller för: Databricks SQL Databricks Runtime
Returnerar det uppskattade antalet distinkta values i expr
inom gruppen.
Implementeringen använder den kompakta versionen av algoritmen HyperLogLog++ (HLL++), en toppmodern algoritm för kardinalitetsuppskattning.
Resultaten är korrekta inom ett standardvärde på 5 %, vilket härleds från värdet för den maximala relativa standardavvikelsen, även om detta kan konfigureras med parametern relativeSD
enligt nedan.
Syntax
approx_count_distinct(expr[, relativeSD]) [FILTER ( WHERE cond ) ]
Den här funktionen kan också anropas som en window funktion med hjälp av OVER
-satsen.
Argument
-
expr
: Kan vara av vilken typ som helst för vilken ekvivalens som definieras. -
relativeSD
: Definierar den maximala relativa standardavvikelsen som tillåts. -
cond
: Ett valfritt booleskt uttryck som filtrerar de rader som används för aggregering.
Returer
EN BIGINT.
Exempel
> 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