minSimpleState
説明
SimpleState
コンビネータは、min
関数に適用でき、すべての入力値の中で最小値を返します。結果は SimpleAggregateFunction
型で返されます。
使用例
日々の温度測定値を追跡するテーブルを使用した実用的な例を見てみましょう。各ロケーションについて、記録された最低温度を維持したいと考えています。min
を使用した SimpleAggregateFunction
型は、より低い温度が記録されると、自動的に格納された値を更新します。
生の温度測定値用のソーステーブルを作成します:
最低温度を格納する集約テーブルを作成します:
挿入されたデータのトリガーとして機能し、各ロケーションごとの最低および最高温度を維持する増分マテリアライズドビューを作成します。
初期の温度測定値を挿入します:
これらの測定値は自動的にマテリアライズドビューによって処理されます。現在の状態を確認してみましょう:
さらにデータを挿入します:
新しいデータの後の更新された極値を表示します:
上記のように、各ロケーションに2つの挿入値があります。これは、パーツがまだマージ(および AggregatingMergeTree
によって集約)されていないためです。部分的な状態から最終結果を取得するためには、GROUP BY
を追加する必要があります:
期待される結果が得られます:
注記
SimpleState
を使用すると、部分的な集計状態を結合するために Merge
コンビネータを使用する必要はありません。