跳转到主要内容

uniqHLL12

引入版本:v1.1.0 使用 HyperLogLog 算法,计算不同参数值的近似数量。
不建议使用此函数。在大多数情况下,请使用 uniquniqCombined 函数。
此函数会对聚合中的所有参数计算哈希值,并在计算中使用这些哈希值。 它使用 HyperLogLog 算法来近似计算不同参数值的数量。使用 2^12 个 5 位单元。 状态大小略高于 2.5 KB。 对于较小的数据集 (<10K 个元素) ,结果不太准确 (误差最高约为 10%) 。 不过,对于高基数数据集 (10K-100M) ,结果相当准确,最大误差约为 1.6%。 从 100M 开始,估算误差会增大;对于基数极高的数据集 (1B+ 个元素) ,该函数会返回非常不准确的结果。可提供确定性的结果 (不依赖查询处理顺序) 。
语法
uniqHLL12(x[, ...])
参数 返回值 返回一个 UInt64 类型的数值,表示不同参数值的近似数量。UInt64 示例 基本用法
Query
CREATE TABLE example_hll
(
    id UInt32,
    category String
)
ENGINE = Memory;

INSERT INTO example_hll VALUES
(1, 'A'), (2, 'B'), (3, 'A'), (4, 'C'), (5, 'B'), (6, 'A');

SELECT uniqHLL12(category) AS hll_unique_categories
FROM example_hll;
Response
┌─hll_unique_categories─┐
│                     3 │
└───────────────────────┘
另请参见
最后修改于 2026年6月10日