Описание
State
можно применить к функции avg,
чтобы получить промежуточное состояние типа AggregateFunction(avg, T), где
T — указанный тип значения, для которого вычисляется среднее.
Пример использования
AggregateFunction
вместе с функцией avgState для агрегации данных о трафике веб-сайта.
Сначала создайте исходную таблицу для данных о трафике веб-сайта:
avg не может использовать тип SimpleAggregateFunction, так как требует сложного
состояния (суммы и счётчика). Поэтому используем тип AggregateFunction:
page_performance:
avg_response_time имеет тип AggregateFunction(avg, UInt32)
и хранит промежуточные данные состояния. Также обратите внимание, что данные строки для
avg_response_time не несут полезной информации — вместо них отображаются странные символы,
например �, n, F, }. Это попытка терминала отобразить бинарные данные в виде текста.
Причина в том, что типы AggregateFunction хранят своё состояние в бинарном формате,
оптимизированном для эффективного хранения и вычислений, а не для восприятия человеком.
Это бинарное состояние содержит всю информацию, необходимую для вычисления среднего значения.
Чтобы воспользоваться им, используйте комбинатор Merge: