37.12 自定义聚合
PostgreSQL中的聚合函数用以处理静态数据。为定义新的聚合函数,需要指定静态值的数据类型,初始值以及值转换函数。 CREATE AGGREGATE
37.12.1 移动聚合模式
聚合函数可以选择性地支持移动聚合模式,这种模式可在很大程度上提高具有移动帧起点的窗口中执行的聚合函数的速度。
37.12.2 多态和可变参聚合
聚合函数可使用多态状态转换函数或最终函数,以使相同函数可用于实现多个聚合函数。
37.12.3 排序集聚合
PostgreSQL也支持排序集聚合,与普通聚合的主要区别为:
-
排序集聚合有对每个聚合操作只计算一次的参数;
-
始终排序;
37.12.4 部分聚合
聚合函数也支持部分聚合。若想支持部分聚合,需要在聚合定义时提供一个复合函数(combine function)。
37.12.5 聚合支持函数
可通过调用AggCheckCallContext检测C函数作为聚合支持函数调用。