跳到主要内容

APPROX_COUNT_DISTINCT

使用 HyperLogLog 算法估计数据集中不同值的数量。

HyperLogLog 算法通过使用少量内存和时间提供唯一元素数量的近似值。在处理大型数据集且可以接受估计结果时,考虑使用此函数。作为对一些准确性的交换,这是一种快速且高效的返回不同计数的方法。

要获得准确的结果,请使用 COUNT_DISTINCT。更多解释请参见 示例

语法

APPROX_COUNT_DISTINCT(<expr>)

返回类型

整数。

示例

创建表并插入示例数据

CREATE TABLE user_events (
id INT,
user_id INT,
event_name VARCHAR
);

INSERT INTO user_events (id, user_id, event_name)
VALUES (1, 1, 'Login'),
(2, 2, 'Login'),
(3, 3, 'Login'),
(4, 1, 'Logout'),
(5, 2, 'Logout'),
(6, 4, 'Login'),
(7, 1, 'Login');

查询示例:估计不同用户ID的数量

SELECT APPROX_COUNT_DISTINCT(user_id) AS approx_distinct_user_count
FROM user_events;

结果

| approx_distinct_user_count |
|----------------------------|
| 4 |
欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验