HLL_COUNT_MERge 関数は、1 つ以上の HLL++ データ構造 (スケッチ) を受け入れ、同じストレージクラスを持つスケッチを新しいスケッチにマージし、結果として得られるスケッチのカーディナリティの推定値を返します。
注意事項
HLL_COUNT_EXTRACT、HLL_COUNT_MERGE、および HLL_COUNT_MERGE_PARTIAL 関数で使用される BINARY データは、HLL_COUNT_INIT 関数によって生成されたものでなければなりません。 他のシステムやメソッドからのデータは使用できません。
構文
BIGINT HLL_COUNT_MERGE(BINARY <sketch>)パラメーター
sketch:必須。 HLL_COUNT_INIT 関数によって生成される BINARY 値である HLL++ スケッチ。
sketch が null の場合、無視されます。
すべての入力 sketch 値は、同じデータ型で初期化する必要があります。 異なるデータ型のスケッチをマージすると、エラーが発生します。 たとえば、BIGINT データから生成されたスケッチを STRING データから生成されたスケッチとマージすることはできません。
戻り値
推定カーディナリティを BIGINT 値として返します。 マージされたスケッチが null の場合、関数は 0 を返します。
例
すべての国を対象に、少なくとも 1 つの請求書を持つユニーク顧客数をカウントします。
SELECT HLL_COUNT_MERGE(hll_sketch) AS distinct_customers_with_open_invoice
FROM
(
SELECT country, HLL_COUNT_INIT(customer_id) AS hll_sketch
FROM values
('UA', 'customer_id_1', 'invoice_id_11'),
('BR', 'customer_id_3', 'invoice_id_31'),
('CZ', 'customer_id_2', 'invoice_id_22'),
('CZ', 'customer_id_2', 'invoice_id_23'),
('BR', 'customer_id_3', 'invoice_id_31'),
('UA', 'customer_id_2', 'invoice_id_24')
t(country, customer_id, invoice_id)
GROUP BY country
);次の結果が返されます:
+--------------------------------------+
| distinct_customers_with_open_invoice |
+--------------------------------------+
| 3 |
+--------------------------------------+関連関数
HLL_COUNT_MERGE は HyperLogLog++ 関数です。 MaxCompute は、概算集計のための一連の HyperLogLog++ 関数を提供しています。 詳細については、「HyperLogLog++ 関数」をご参照ください。