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