

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# HLL\_SKETCH\_ESTIMATE 函数
<a name="HLL_SKETCH_ESTIMATE"></a>

HLL\_SKETCH\_ESTIMATE 函数获取 HLL 草图并估计该草图所表示的唯一元素的数量。它使用 HyperLogLog (HLL) 算法计算给定列中唯一值数量的概率近似值，消耗先前由 HLL\_SKETCH\_AGG 函数生成的称为草图缓冲区的二进制表示形式，并将结果作为大整数返回。

HLL 草图算法提供了一种有效的方法来估计唯一元素的数量，即使对于大型数据集也是如此，而无需存储完整的唯一值集。

`hll_union`和`hll_union_agg`函数还可以通过消耗和合并这些缓冲区作为输入来将草图组合在一起。

## 语法
<a name="HLL_SKETCH_ESTIMATE-synopsis"></a>

```
HLL_SKETCH_ESTIMATE (hllsketch_expression)
```

## 参数
<a name="HLL_SKETCH_ESTIMATE-argument"></a>

 *hllsketch\_expression*   
一个包含由 HLL\_SKETCH\_AGG 生成的草图的`BINARY`表达式

## 返回类型
<a name="HLL_SKETCH_ESTIMATE-return-type"></a>

HLL\_SKETCH\_ESTIMATE 函数返回一个 BIGINT 值，该值是输入草图表示的近似不同计数。

## 示例
<a name="HLL_SKETCH_ESTIMATE-examples"></a>

以下示例使用 HyperLogLog (HLL) 草绘算法来估计列中值的基数（唯一计数）。`col`该`hll_sketch_agg(col, 12)`函数取`col`列并使用 12 位的精度创建 HLL 草图。HLL 草图是一种近似数据结构，可以有效地估计集合中唯一元素的数量。该`hll_sketch_estimate()`函数采用由创建的 HLL 草图，`hll_sketch_agg`并估计草图所表示的值的基数（唯一计数）。`FROM VALUES (1), (1), (2), (2), (3) tab(col);`生成一个包含 5 行的测试数据集，其中该`col`列包含值 1、1、2、2 和 3。此查询的结果是该`col`列中值的估计唯一计数，即 3。

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

以下示例与上一个示例的区别在于，`hll_sketch_agg`函数调用中未指定精度参数（12 位）。在这种情况下，将使用 14 位的默认精度，与之前使用 12 位精度的示例相比，这可能为唯一计数提供更准确的估计值。

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