カテゴリ:

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

HLL

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

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

エイリアス:

APPROX_COUNT_DISTINCT

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

HLL_ACCUMULATEHLL_COMBINEHLL_ESTIMATE

構文

集計関数

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

HLL(*)
Copy

ウィンドウ関数

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

HLL(*) OVER ( [ PARTITION BY <expr2> ] )
Copy

引数

expr1

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

expr2

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

戻り値

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

使用上の注意

  • DISTINCT は引数として含めることができますが、効果はありません。

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

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

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

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

      • ウィンドウフレーム。

この例は、 HLL とそのエイリアス APPROX_COUNT_DISTINCTの使用方法を示しています。この例では、 COUNT(DISTINCT i)APPROX_COUNT_DISTINCT(i) の両方を呼び出して、これら2つの関数の結果が常時完全に一致するとは限らないことを強調しています。

APPROX_COUNT_DISTINCT() は正確な値ではなく近似値を返すため、次のクエリからの正確な出力は異なる場合があります。

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 |
+----------+-------------------+--------------------------+--------+
Copy