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