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