uniqCombined64
uniqCombined64
引入于:v20.1
计算不同参数值的近似数量。
它与 uniqCombined 相同,但对所有数据类型都使用 64 位哈希,而不仅仅是对 String 数据类型使用。
此函数以确定性的方式返回结果(结果不依赖于查询处理顺序)。
注意
由于它对所有类型都使用 64 位哈希,因此在基数显著大于 UINT_MAX 时,结果不会像使用 32 位哈希处理非 String 类型的 uniqCombined 那样出现非常高的误差。
与 uniq 函数相比,uniqCombined64 函数:
- 内存消耗减少数倍
- 计算精度提高数倍
Details
实现细节
此函数对聚合中所有参数的所有数据类型计算 64 位哈希,然后在计算中使用该哈希。 它组合使用了三种算法:数组、哈希表,以及带有误差修正表的 HyperLogLog:- 当不同元素数量较少时,使用数组
- 当集合大小进一步增大时,使用哈希表
- 当元素数量更大时,使用 HyperLogLog,它只占用固定大小的内存
语法
参数
HLL_precision— 可选。HyperLogLog 中单元格数量的二进制对数。默认值为 17,对应约 96 KiB 的空间(2^17 个单元格,每个 6 位)。范围:[12, 20]。UInt8
参数说明
返回值
返回一个 UInt64 类型的数字,表示参数取值的近似去重计数。UInt64
示例
大型数据集示例
与 uniqCombined 对比
另请参阅