Skip to main content
Edit this page

SimpleAggregateFunction

SimpleAggregateFunction(name, types_of_arguments...) データ型は、集約関数の現在の値を格納し、AggregateFunction のようにその完全な状態を格納しません。この最適化は、次の性質を持つ関数に適用できます。すなわち、行セット S1 UNION ALL S2 に関数 f を適用した結果は、行セットの部分に対してそれぞれ f を適用し、その結果に再度 f を適用することで得られる: f(S1 UNION ALL S2) = f(f(S1) UNION ALL f(S2)) 。この性質により、部分的な集計結果で結合結果を計算するのに十分であることが保証されるため、余分なデータを格納および処理する必要がなくなります。

集約関数の値を生成する一般的な方法は、-SimpleState サフィックスを付けて集約関数を呼び出すことです。

サポートされている集約関数は以下の通りです:

Note

SimpleAggregateFunction(func, Type) の値は Type と同じように見え、格納されますので、-Merge/-State サフィックスを付けた関数を適用する必要はありません。

SimpleAggregateFunction は同じ集約関数を持つ AggregateFunction よりも性能が良くなります。

パラメーター

  • 集約関数の名前。
  • 集約関数の引数の型。

CREATE TABLE simple (id UInt64, val SimpleAggregateFunction(sum, Double)) ENGINE=AggregatingMergeTree ORDER BY id;