HLL¶
HyperLogLog を使用して、入力の異なるカーディナリティの近似値を返します( HLL(col1, col2, ... )
は COUNT(DISTINCT col1, col2, ... )
の近似値を返します)。
HyperLogLog の詳細については、 異なる値の数の推定 をご参照ください。
- エイリアス:
- こちらもご参照ください。
構文¶
集計関数
HLL( [ DISTINCT ] <expr1> [ , ... ] )
HLL(*)
ウィンドウ関数
HLL( [ DISTINCT ] <expr1> [ , ... ] ) OVER ( [ PARTITION BY <expr2> ] )
HLL(*) OVER ( [ PARTITION BY <expr2> ] )
引数¶
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 | +----------+-------------------+--------------------------+--------+