

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

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

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

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

```
HLL_UNION (( expr1, expr2 [, allowDifferentLgConfigK ] ))
```

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

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

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

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

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

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

次の例では、HyperLogLog (HLL) スケッチアルゴリズムを使用して、データセット`col2`内の 2 つの列 `col1`と の値の一意の数を推定します。

 `hll_sketch_agg(col1)` 関数は、`col1`列内の一意の値の HLL スケッチを作成します。

`hll_sketch_agg(col2)` 関数は、col2 列の一意の値の HLL スケッチを作成します。

この`hll_union(...)`関数は、ステップ 1 と 2 で作成した 2 つの HLL スケッチを 1 つの統合 HLL スケッチに結合します。

`hll_sketch_estimate(...)` 関数は、結合された HLL スケッチを取得し、 `col1` と の両方の値の一意の数を推定します`col2`。

`FROM VALUES` 句は 5 行のテストデータセットを生成します。 `col1`には値 1、1、2、2、3 が含まれ、 には値 4、4、5、5、6 `col2`が含まれます。

このクエリの結果は、 `col1`と の両方の値の推定一意数であり`col2`、6 です。HLL スケッチアルゴリズムは、大きなデータセットであっても、一意の値のセットをすべて保存することなく、一意の要素の数を効率的に推定する方法を提供します。この例では、 `hll_union`関数を使用して 2 つの列の HLL スケッチを組み合わせます。これにより、列ごとにだけでなく、データセット全体で一意の数を推定できます。

```
SELECT hll_sketch_estimate(
  hll_union(
    hll_sketch_agg(col1),
    hll_sketch_agg(col2)))
  FROM VALUES
    (1, 4),
    (1, 4),
    (2, 5),
    (2, 5),
    (3, 6) AS tab(col1, col2);
  6
```

次の例と前の例の違いは、精度パラメータ (12 ビット) が`hll_sketch_agg`関数呼び出しで指定されていないことです。この場合、デフォルトの精度である 14 ビットが使用されます。これにより、12 ビットの精度を使用した前の例と比較して、一意のカウントのより正確な推定が得られます。

```
SELECT hll_sketch_estimate(
  hll_union(
    hll_sketch_agg(col1, 14),
    hll_sketch_agg(col2, 14)))
  FROM VALUES
    (1, 4),
    (1, 4),
    (2, 5),
    (2, 5),
    (3, 6) AS tab(col1, col2);
```