Перейти к основному содержанию

Описание

Комбинатор SimpleState можно применить к функции min, чтобы получить минимальное значение среди всех входных значений. Он возвращает результат типа SimpleAggregateFunction.

Пример использования

Рассмотрим практический пример с таблицей, в которой хранятся ежедневные показатели температуры. Для каждой локации нужно хранить минимальную зарегистрированную температуру. Использование типа SimpleAggregateFunction с min автоматически обновляет сохранённое значение при появлении более низкой температуры. Создайте исходную таблицу для исходных показаний температуры:
Создайте агрегирующую таблицу для хранения минимальных температур:
Создайте Incremental materialized view, который будет служить триггером вставки для вставляемых данных и поддерживать минимальную и максимальную температуру для каждого местоположения.
Вставьте несколько начальных показаний температуры:
Эти значения автоматически обрабатываются materialized view. Давайте проверим текущее состояние:
Добавьте ещё немного данных:
Просмотрите обновлённые экстремумы после появления новых данных:
Обратите внимание: выше для каждой локации есть по два вставленных значения. Это потому, что части ещё не были слиты (и агрегированы с помощью AggregatingMergeTree). Чтобы получить окончательный результат из частичных состояний, нужно добавить GROUP BY:
Теперь мы получаем ожидаемый результат:
При использовании SimpleState не нужно применять комбинатор Merge для объединения промежуточных состояний агрегации.

См. также

Последнее изменение 19 июня 2026 г.