计算参数的不同值的近似数量。
语法
uniq(x[, ...])
参数
该函数采用可变数量的参数。 参数可以是 Tuple
, Array
, Date
, DateTime
, String
, 或数字类型。
返回值
实现细节
功能:
uniq
将是几乎一样快。我们建议在几乎所有情况下使用此功能。
计算不同参数值的近似数量。
语法
uniqCombined(HLL_precision)(x[, ...])
该 uniqCombined
函数是计算不同值数量的不错选择。
参数
该函数采用可变数量的参数。 参数可以是 Tuple
, Array
, Date
, DateTime
, String
,或数字类型。HLL_precision
是以2为底的单元格数的对数 HyperLogLog。可选,您可以将该函数用作 uniqCombined(x[, ...])
。 HLL_precision
的默认值是17,这是有效的96KiB的空间(2^17个单元,每个6比特)。
返回值
实现细节
功能:
String
类型用64位哈希,其他32位),然后在计算中使用它。注意
由于它对非 String
类型使用32位哈希,对于基数显著大于UINT_MAX
,结果将有非常高的误差(误差将在几百亿不同值之后迅速提高), 因此这种情况,你应该使用 uniqCombined64。
相比于 uniq 函数, 该 uniqCombined
:
uniqCombined
可以表现得比 uniq
好,例如,使用通过网络传输大量聚合状态的分布式查询。和 uniqCombined 一样, 但对于所有数据类型使用64位哈希。
计算不同参数值的准确数目。
语法
uniqExact(x[, ...])
如果你绝对需要一个确切的结果,使用 uniqExact
函数。 否则使用 uniq 函数。uniqExact
函数比 uniq
使用更多的内存,因为状态的大小随着不同值的数量的增加而无界增长。
参数
该函数采用可变数量的参数。 参数可以是 Tuple
, Array
, Date
, DateTime
, String
,或数字类型。
计算不同参数值的近似数量,使用 HyperLogLog 算法。
语法
uniqHLL12(x[, ...])
参数
该函数采用可变数量的参数。 参数可以是 Tuple
, Array
, Date
, DateTime
, String
,或数字类型。
返回值
实现细节
功能:
我们不建议使用此函数。 在大多数情况下, 使用 uniq 或 uniqCombined 函数。