uniqHLL12
使用 HyperLogLog 算法计算参数不同取值的近似个数。
参数
该函数接受可变数量的参数。参数可以是 Tuple、Array、Date、DateTime、String 或数值类型。
返回值
- 一个 UInt64 类型的数字。
实现细节
函数:
-
为聚合中的所有参数计算哈希值,然后在计算中使用该哈希值。
-
使用 HyperLogLog 算法来近似计算不同参数值的数量。
使用 2^12 个 5 位单元。状态的大小略大于 2.5 KB。对于较小的数据集(<10K 个元素),结果精度不高(误差最高约 ~10%)。但是,对于高基数数据集(10K-100M),结果相当准确,最大误差约为 ~1.6%。从 100M 开始,估算误差会增加,对于基数极高的数据集(1B+ 个元素),该函数将返回非常不准确的结果。
-
提供确定性的结果(不依赖于查询处理顺序)。
不建议使用此函数。在大多数情况下,请使用 uniq 或 uniqCombined 函数。
另请参阅