Funktion hll_union_agg

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 13.3 LTS och senare

Den här funktionen använder HyperLogLog-algoritmen för att kombinera en grupp skisser till en enda.

Frågor kan använda de resulterande buffertarna för att beräkna ungefärliga unika antal med funktionen hll_sketch_estimate .

Implementeringen använder Apache Datasketches-biblioteket. Mer information finns i HLL .

Syntax

hll_union_agg ( expr [, allowDifferentLgConfigK ] )

Den här funktionen kan också anropas som en -fönsterfunktion med hjälp av OVER-satsen.

Argument

  • expr: Ett BINARY uttryck som innehåller en skiss som genererats av hll_sketch_agg.
  • allowDifferentLgConfigK: Ett valfritt BOOLEANkonstant uttryck som styr om du vill tillåta sammanslagning av skisser med olika lgConfigK-värden. Standardvärdet är "false".

Returer

En BINARY buffert som innehåller HyperLogLog-skissen beräknad som ett resultat av att kombinera indatauttrycken från samma grupp.

När parametern allowDifferentLgConfigK är sann använder resultatskissen det mindre av de två angivna lgConfigK värdena.

Azure Databricks genererar HLL_UNION_DIFFERENT_LG_K om indataskisser har olika värden lgConfigK och allowDifferentLgConfigK är false.

Azure Databricks genererar HLL_INVALID_INPUT_SKETCH_BUFFER om expr inte är en giltig HLL-skissbuffert.

Vanliga felvillkor

Exempel

> SELECT hll_sketch_estimate(hll_union_agg(sketch, true))
    FROM (SELECT hll_sketch_agg(col) as sketch
            FROM VALUES (1) AS tab(col)
          UNION ALL
          SELECT hll_sketch_agg(col, 20) as sketch
            FROM VALUES (1) AS tab(col));
  1

> SELECT hll_sketch_estimate(hll_union_agg(sketch, false))
    FROM (SELECT hll_sketch_agg(col) as sketch
            FROM VALUES (1) AS tab(col)
          UNION ALL
          SELECT hll_sketch_agg(col, 20) as sketch
            FROM VALUES (1) AS tab(col));
  Error: HLL_UNION_DIFFERENT_LG_K