

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# HLL\$1SKETCH\$1AGG 函數
<a name="HLL_SKETCH_AGG"></a>

HLL\$1SKETCH\$1AGG 彙總函數會從指定欄中的值建立 HLL 草圖。它會傳回封裝輸入表達式值的 HLLSKETCH 資料類型。

HLL\$1SKETCH\$1AGG 彙總函數適用於任何資料類型，並忽略 NULL 值。

如果表格中沒有列或所有列都為 NULL，則產生的草圖沒有索引-值對，例如 `{"version":1,"logm":15,"sparse":{"indices":[],"values":[]}}`。

## 語法
<a name="HLL_SKETCH_AGG-synopsis"></a>

```
HLL_SKETCH_AGG (aggregate_expression[, lgConfigK ] )
```

## 引數
<a name="HLL_SKETCH_AGG-argument"></a>

 *aggregate\$1expression*   
任何類型 INT、BIGINT、STRING 或 BINARY 的表達式，其將發生唯一計數。會忽略任何`NULL`值。

*lgConfigK*  
選用的 INT 常數，介於 4 到 21 之間，預設值為 12。K 的 log-base-2，其中 K 是草圖的儲存貯體或插槽數目。

## 傳回類型
<a name="HLL_SKETCH_AGG-return-type"></a>

HLL\$1SKETCH\$1AGG 函數會傳回非 Null BINARY 緩衝區，其中包含計算的 HyperLogLog 草圖，因為 會耗用和彙總彙總群組中的所有輸入值。

## 範例
<a name="HLL_SKETCH_AGG-examples"></a>

下列範例使用 HyperLogLog (HLL) 演算法來估計資料`col`欄中值的不同計數。`hll_sketch_agg(col, 12)` 函數會彙總 col 欄中的值，使用精確度 12 建立 HLL 草圖。然後，該`hll_sketch_estimate()`函數會用來根據產生的 HLL 草圖來估計不同的值計數。查詢的最終結果為 3，代表資料`col`欄中值的預估不同計數。在此情況下，不同的值為 1、2 和 3。

```
SELECT hll_sketch_estimate(hll_sketch_agg(col, 12))
    FROM VALUES (1), (1), (2), (2), (3) tab(col);
  3
```

下列範例也會使用 HLL 演算法來估算資料`col`欄中值的不同計數，但不會指定 HLL 草圖的精確度值。在這種情況下，它會使用預設精確度 14。`hll_sketch_agg(col)` 函數會取得資料`col`欄中的值，並建立 HyperLogLog (HLL) 草圖，這是可用來估計不同元素計數的精簡資料結構。`hll_sketch_estimate(hll_sketch_agg(col))` 函數會採用上一個步驟中建立的 HLL 草圖，並計算資料`col`欄中不同值計數的估計值。查詢的最終結果為 3，代表資料`col`欄中值的預估不同計數。在此情況下，不同的值為 1、2 和 3。

```
SELECT hll_sketch_estimate(hll_sketch_agg(col))
FROM VALUES (1), (1), (2), (2), (3) tab(col);
3
```