approx_count_distinct mängdfunktion

Gäller för:check markerad ja Databricks SQL-kontroll markerad som ja Databricks Runtime

Returnerar det uppskattade antalet distinkta värden i expr gruppen.

Implementeringen använder den kompakta versionen av algoritmen HyperLogLog++ (HLL++), en toppmodern kardinalitetsberäkningsalgoritm.

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 fönsterfunktion med hjälp av - OVER satsen.

Argument

  • expr: Kan vara av vilken typ som helst för vilken likvärdighet 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.

Returnerar

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