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> ] )
引数¶
式1
これは、個別の値の数を知るときの式です。
式2
これは、行をパーティションにグループ化するために使用されるオプションの式です。
戻り値¶
返される値のデータ型は INTEGER です。
使用上の注意¶
DISTINCT
引数として含めることができますが、効果はありません。NULL 値と集計関数の詳細については、 集計関数と NULL 値 をご参照ください。
ウィンドウ関数として使用する場合:
この関数は次をサポートしていません。
OVER()句のORDER BY サブ句。
ウィンドウフレーム。
例¶
この例は、 HLL とそのエイリアス APPROX_COUNT_DISTINCTの使用方法を示しています。この例では、 COUNT(DISTINCT i)
と APPROX_COUNT_DISTINCT(i)
の両方を呼び出して、結果が常に完全に一致するとは限らないことを強調しています。
SELECT COUNT(i), COUNT(DISTINCT i), APPROX_COUNT_DISTINCT(i), HLL(i) FROM sequence_demo;出力:
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 | 1030 | 1030 | +----------+-------------------+--------------------------+--------+