カテゴリ:

集計関数 (カーディナリティ推定)、 ウィンドウ関数

APPROX_COUNT_DISTINCT

HyperLogLog を使用して、入力の異なるカーディナリティの近似値を返します(つまり、 HLL(col1, col2, ... )COUNT(DISTINCT col1, col2, ... ) の近似値を返します)。

HyperLogLog の詳細については、 異なる値の数の推定 をご参照ください。

エイリアス:

HLL

こちらもご参照ください:

HLL_ACCUMULATEHLL_COMBINEHLL_ESTIMATE

構文

集計関数

APPROX_COUNT_DISTINCT( [ DISTINCT ] <expr1>  [ , ... ] )

APPROX_COUNT_DISTINCT(*)

ウィンドウ関数

APPROX_COUNT_DISTINCT( [ DISTINCT ] <expr1>  [ , ... ] ) OVER ( [ PARTITION BY <expr2> ] )

APPROX_COUNT_DISTINCT(*) OVER ( [ PARTITION BY <expr2> ] )

引数

expr1

これは、個別の値の数を知るときの式です。

expr2

これは、行をパーティションにグループ化するために使用されるオプションの式です。

戻り値

戻り値のデータ型はINTEGERです。

使用上の注意

  • 計算は概算ですが、確定的です。この関数が同じ入力データで呼び出された場合、この関数は同じ結果を返します。

  • NULL 値と集計関数の詳細については、 集計関数と NULL 値 をご参照ください。

  • ウィンドウ関数として使用する場合、

    • この関数は次をサポートしていません。

      • OVER()句のORDER BY サブ句。

      • ウィンドウフレーム。

This example shows how to use APPROX_COUNT_DISTINCT and its alias HLL. This example calls both COUNT(DISTINCT i) and APPROX_COUNT_DISTINCT(i) to emphasize that the results of those two functions do not always match exactly.

The exact output of the following query might vary because APPROX_COUNT_DISTINCT() returns an approximation, not an exact value.

SELECT COUNT(i), COUNT(DISTINCT i), APPROX_COUNT_DISTINCT(i), HLL(i)
  FROM sequence_demo;
+----------+-------------------+--------------------------+--------+
| COUNT(I) | COUNT(DISTINCT I) | APPROX_COUNT_DISTINCT(I) | HLL(I) |
|----------+-------------------+--------------------------+--------|
|     1024 |              1024 |                     1007 |   1007 |
+----------+-------------------+--------------------------+--------+
最上部に戻る