メインコンテンツまでスキップ
メインコンテンツまでスキップ

AggregateFunction

集約関数は、AggregateFunction(...) データ型にシリアライズされ、通常は マテリアライズドビュー を介してテーブルに格納できる実装依存の中間状態を持ちます。 集約関数の状態を生成する一般的な方法は、-State サフィックスを付けて集約関数を呼び出すことです。 将来的に集約の最終結果を得るには、同じ集約関数を -Merge サフィックスを付けて使用する必要があります。

AggregateFunction(name, types_of_arguments...) — パラメトリックデータ型。

パラメータ

  • 集約関数の名前。関数がパラメトリックである場合は、そのパラメータも指定します。

  • 集約関数の引数の型。

uniq、anyIf (any+If) および quantiles は、ClickHouse でサポートされている集約関数です。

使用方法

データ挿入

データを挿入するには、集約 -State 関数を使って INSERT SELECT を使用します。

関数の例

対応する関数 uniq および quantiles に対して、-State 関数は最終値の代わりに状態を返します。言い換えれば、これらは AggregateFunction 型の値を返します。

SELECT クエリの結果において、AggregateFunction 型の値は、すべての ClickHouse 出力形式に対して実装特有のバイナリ表現を持ちます。例えば、TabSeparated 形式にダンプされたデータは、SELECT クエリを通じて、後で INSERT クエリを使用して再ロードできます。

データ選択

AggregatingMergeTree テーブルからデータを選択する際は、挿入時に使用したのと同じ集約関数を使用して、GROUP BY 句を使いますが、-Merge サフィックスを使用します。

-Merge サフィックス付きの集約関数は、一連の状態を取り、それらを組み合わせて、完全なデータ集約の結果を返します。

例えば、次の2つのクエリは、同じ結果を返します:

使用例

AggregatingMergeTree エンジンの説明を参照してください。