approx_count_distinct
聚合函数
适用于: Databricks SQL Databricks Runtime
返回组内 expr
中的预估非重复值数。
该实现使用 HyperLogLog++ (HLL++) 算法的密集版本,这是一种先进的基数估算算法。
结果在 5% 的默认值内是准确的,该值派生自最大相对标准偏差的值,不过可以使用 relativeSD
参数配置该值,如下所述。
语法
approx_count_distinct(expr[, relativeSD]) [FILTER ( WHERE cond ) ]
还可以使用 OVER
子句将此函数作为窗口函数调用。
参数
expr
:可以是定义了等效性的任何类型。relativeSD
:定义允许的最大相对标准偏差。cond
:一个可选的布尔表达式,可筛选用于聚合的行。
返回
一个 BIGINT。
示例
> SELECT approx_count_distinct(col1) FROM VALUES (1), (1), (2), (2), (3) tab(col1);
3
> SELECT approx_count_distinct(col1) FILTER(WHERE col2 = 10)
FROM VALUES (1, 10), (1, 10), (2, 10), (2, 10), (3, 10), (1, 12) AS tab(col1, col2);
3