

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# HLL\$1UNION\$1AGG 関数
<a name="HLL_UNION_AGG"></a>

HLL\$1UNION\$1AGG 関数は、複数の HLL スケッチを 1 つの統合スケッチに結合します。HyperLogLog (HLL) アルゴリズムを使用して、スケッチのグループを 1 つのスケッチに結合します。クエリは、結果のバッファを使用して、`hll_sketch_estimate`関数でおおよその一意数を計算できます。

## 構文
<a name="HLL_UNION_AGG-syntax"></a>

```
HLL_UNION_AGG ( expr [, allowDifferentLgConfigK ] )
```

## 引数
<a name="HLL_UNION_AGG-argument"></a>

 expr**   
HLL\$1SKETCH\$1AGG によって生成されたスケッチを保持する`BINARY`式。

*allowDifferentLgConfigK*  
異なる lgConfigK 値を持つ 2 つのスケッチのマージを許可するかどうかを制御するオプションの BOOLEAN 式。デフォルト値は `false` です。

## 戻り型
<a name="HLL_UNION_AGG-return-type"></a>

HLL\$1UNION\$1AGG 関数は、同じグループの入力式を結合した結果、計算された HyperLogLog スケッチを含む BINARY バッファを返します。`allowDifferentLgConfigK` パラメータが の場合`true`、結果スケッチは 2 つの指定された`lgConfigK`値のうち小さい方を使用します。

## 例
<a name="HLL_UNION_AGG-examples"></a>

次の例では、HyperLogLog (HLL) スケッチアルゴリズムを使用して、複数の HLL スケッチにわたる値の一意の数を推定します。

最初の例では、データセット内の値の一意の数を推定します。

```
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
```

内部クエリは 2 つの HLL スケッチを作成します。
+ 最初の SELECT ステートメントは、1 つの値からスケッチを作成します。
+ 2 番目の SELECT ステートメントは、別の 1 つの値 1 からスケッチを作成しますが、精度は 20 です。

外部クエリは HLL\$1UNION\$1AGG 関数を使用して、2 つのスケッチを 1 つのスケッチに結合します。次に、HLL\$1SKETCH\$1ESTIMATE 関数をこの組み合わせスケッチに適用して、値の一意の数を推定します。

このクエリの結果は、 `col`列の値の推定一意数です`1`。つまり、2 つの入力値 1 は、同じ値であっても一意であると見なされます。

2 番目の例には、HLL\$1UNION\$1AGG 関数の別の精度パラメータが含まれています。この場合、両方の HLL スケッチは 14 ビットの精度で作成されるため、 `true`パラメータ`hll_union_agg`で を使用して正常に組み合わせることができます。

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

クエリの最終結果は推定一意数であり、この場合も です`1`。つまり、2 つの入力値 1 は、同じ値であっても一意であると見なされます。