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