次の方法で共有


hll_union_agg 関数

適用対象:check marked yes Databricks SQL Databricks Runtime 13.3 LTS 以降

この関数では、HyperLogLog アルゴリズムを使用して、スケッチのグループを 1 つのスケッチに結合します。

クエリでは、結果のバッファーを使用し、hll_sketch_estimate 関数で一意の概数を計算できます。

実装では、Apache Datasketches ライブラリを使用します。 詳細については、「HLL」を参照してください。

構文

hll_union_agg ( expr [, allowDifferentLgConfigK ] )

この関数は、OVER 句を使用して ウィンドウ 関数として呼び出すこともできます。

引数

  • expr: hll_sketch_aggによって生成されるスケッチを保持する BINARY 式。
  • allowDifferentLgConfigK: 異なる lgConfigK 値を持つスケッチのマージを許可するかどうかを制御する省略可能な BOOLEAN 定数式。 既定値は false です。

返品

同じグループの入力式を組み合わせた結果として計算される HyperLogLog スケッチを含む BINARY バッファー。

allowDifferentLgConfigK パラメーターが true の場合、結果スケッチでは、指定された 2 つの lgConfigK 値のうち小さい方が使用されます。

> 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