Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

aggregate_* セッション設定

これらの設定は system.settings で利用でき、ソースコード から自動生成されています。

aggregate_function_input_format

AggregateFunctionInputFormat
デフォルト値
state
バージョン履歴
バージョンデフォルト値コメント
25.12stateINSERT 操作中の AggregateFunction 入力フォーマットを制御するための新しい設定。設定値はデフォルトで state に設定されています

INSERT 操作時の AggregateFunction 入力フォーマット。

設定可能な値:

  • state — シリアライズされた state を含むバイナリ文字列 (デフォルト) 。これがデフォルトの動作で、AggregateFunction の値はバイナリデータとして受け取られます。
  • value — このフォーマットでは、集約関数の引数の単一の値、または引数が複数ある場合はそれらの Tuple を受け取ります。これらは対応する IDataType または DataTypeTuple を使ってデシリアライズされ、その後 state を形成するために集計されます。
  • array — このフォーマットでは、上記の value オプションで説明した値の Array を受け取ります。Array 内のすべての要素が集計されて state が形成されます。

次の構造を持つテーブルに対して:

CREATE TABLE example (
    user_id UInt64,
    avg_session_length AggregateFunction(avg, UInt32)
);

aggregate_function_input_format = 'value' の場合:

INSERT INTO example FORMAT CSV
123,456

aggregate_function_input_format = 'array' の場合:

INSERT INTO example FORMAT CSV
123,"[456,789,101]"

注: value および array フォーマットは、挿入時に値を生成して集約する必要があるため、デフォルトの state フォーマットよりも低速です。

aggregate_functions_null_for_empty

Bool
デフォルト値
0

クエリ内のすべての集約関数を -OrNull 接尾辞付きに書き換える機能を有効または無効にします。SQL標準互換性のために有効にしてください。 これは、一貫した結果を分散クエリで得るために、クエリの書き換え (count_distinct_implementation 設定と同様) によって実装されています。

設定可能な値:

  • 0 — 無効。
  • 1 — 有効。

次の集約関数を含むクエリを考えてみましょう:

SELECT SUM(-1), MAX(0) FROM system.one WHERE 0;

aggregate_functions_null_for_empty = 0 の場合、次のような結果が得られます。

┌─SUM(-1)─┬─MAX(0)─┐
│       0 │      0 │
└─────────┴────────┘

aggregate_functions_null_for_empty = 1 を 1 にすると、結果は次のようになります:

┌─SUMOrNull(-1)─┬─MAXOrNull(0)─┐
│          NULL │         NULL │
└───────────────┴──────────────┘
Navigation