共用方式為


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