uniqCombined

    语法

    该 函数是计算不同值数量的不错选择。

    参数

    该函数采用可变数量的参数。 参数可以是 Tuple, Array, Date, DateTime, ,或数字类型。

    返回值

    • 一个UInt64类型的数字。

    实现细节

    功能:

    • 为聚合中的所有参数计算哈希(String类型用64位哈希,其他32位),然后在计算中使用它。

    • 少量的不同的值,使用数组。 值再多一些,使用哈希表。对于大量的数据来说,使用HyperLogLog,HyperLogLog占用一个固定的内存空间。

    由于它对非 类型使用32位哈希,对于基数显著大于UINT_MAX ,结果将有非常高的误差(误差将在几百亿不同值之后迅速提高), 因此这种情况,你应该使用

    • 消耗内存要少几倍。
    • 计算精度高出几倍。
    • 通常具有略低的性能。 在某些情况下, uniqCombined 可以表现得比 uniq 好,例如,使用通过网络传输大量聚合状态的分布式查询。

    参见