SimpleAggregateFunction(func, type) 

Хранит только текущее значение агрегатной функции и не сохраняет ее полное состояние, как это делает AggregateFunction. Такая оптимизация может быть применена к функциям, которые обладают следующим свойством: результат выполнения функции f к набору строк S1 UNION ALL S2 может быть получен путем выполнения f к отдельным частям набора строк,
а затем повторного выполнения f к результатам: f(S1 UNION ALL S2) = f(f(S1) UNION ALL f(S2)). Это свойство гарантирует, что результатов частичной агрегации достаточно для вычисления комбинированной, поэтому хранить и обрабатывать какие-либо дополнительные данные не требуется.

Чтобы получить промежуточное значение, обычно используются агрегатные функции с суффиксом -SimpleState.

Поддерживаются следующие агрегатные функции:

Параметры

  • func — имя агрегатной функции.
  • type — типы аргументов агрегатной функции.

Пример

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

Rating: 1.8 - 23 votes

Was this content helpful?
★★☆☆☆