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