minSimpleState
描述
SimpleState 组合器可以应用于 min
函数,用于返回所有输入值中的最小值。它返回的结果类型为 SimpleAggregateFunction。
示例用法
来看一个使用表来跟踪每日温度读数的实际示例。对于每个地点,我们希望维护记录到的最低温度。使用带有 min 的 SimpleAggregateFunction 类型,在遇到更低的温度时会自动更新存储的值。
创建用于原始温度读数的源表:
创建用于存储最小温度的聚合表:
创建一个增量物化视图,作为插入数据的触发器, 为每个位置维护最低和最高温度。
插入一些初始温度数据:
这些读数会由物化视图自动处理。我们来检查一下 当前状态:
继续写入一些数据:
在写入新数据后查看更新的极值:
请注意上面我们为每个 location 插入了两个值。这是因为 parts 还没有被合并(并且尚未被 AggregatingMergeTree 聚合)。要从这些部分状态中得到最终结果,我们需要添加一个 GROUP BY:
现在可以看到预期的结果:
注意
使用 SimpleState 时,就不需要再使用 Merge 组合器来合并部分聚合状态。