すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:HLL_COUNT_MERGE

最終更新日:Dec 09, 2025

HLL_COUNT_MERge 関数は、1 つ以上の HLL++ データ構造 (スケッチ) を受け入れ、同じストレージクラスを持つスケッチを新しいスケッチにマージし、結果として得られるスケッチのカーディナリティの推定値を返します。

注意事項

HLL_COUNT_EXTRACTHLL_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++ 関数」をご参照ください。