历史版本。 PostgreSQL 9.5 已结束支持。 2021-02-11. 请参阅 当前版本手册.
49.2. pg_aggregate #
目录pg_aggregate存储关于聚合函数的信息。聚合函数是对一组值(典型的是每个匹配查询条件的行中的同一个列的值)进行操作的函数,它返回从这些值中计算出的单个值。典型的聚合函数是 sum、count和max。pg_aggregate里的每个项都是一个pg_proc项的扩展。pg_proc项记载该聚合的名字、输入和输出数据类型,以及其他一些和普通函数类似的信息。
表 49.2. pg_aggregate 列
| 名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
aggfnoid | regproc | | 聚合函数的pg_proc OID
|
aggkind | char | 聚合种类:n 表示“普通”聚合,o 表示“有序集”聚合,或
h 表示“假想集”聚合
| |
aggnumdirectargs | int2 | 有序集或假想集聚合的直接(非聚合)参数个数,其中一个可变参数数组算作一个参数。如果它等于pronargs,则该聚合必定是可变参数的,并且该可变参数数组既描述聚合参数也描述最终的直接参数。对普通聚合总为零。
| |
aggtransfn | regproc | | 转移函数 |
aggfinalfn | regproc | | 最终函数(如果没有就为零) |
aggmtransfn | regproc | | 用于移动聚合模式的前向状态转移函数(如果没有就为零) |
aggminvtransfn | regproc | | 用于移动聚合模式的逆向状态转移函数(如果没有就为零) |
aggmfinalfn | regproc | | 用于移动聚合模式的最终函数(如果没有就为零) |
aggfinalextra | bool | 若为真,则会向aggfinalfn传递额外的虚拟参数
| |
aggmfinalextra | bool | 若为真,则会向aggmfinalfn传递额外的虚拟参数
| |
aggsortop | oid | | 相关联的排序操作符(如果没有则为0) |
aggtranstype | oid | | 聚合函数的内部转移(状态)数据的数据类型 |
aggtransspace | int4 | 转移状态数据的近似平均尺寸(字节),或者为零表示使用一个默认估算值 | |
aggmtranstype | oid | | 聚合函数在移动聚合模式下内部转移(状态)数据的数据类型(如果没有则为零) |
aggmtransspace | int4 | 移动聚合模式的转移状态数据的近似平均尺寸(字节),或者为零表示使用默认估算值 | |
agginitval | text | 转移状态的初始值。这是一个文本字段,包含初始值的外部字符串表示形式。如果此字段为空,则转移状态值从空值开始。 | |
aggminitval | text | 用于移动聚合模式的转移状态初值。这是一个文本域,它包含了以其文本字符串形式表达的初值。如果这个域为空,则转移状态值从空值开始。 |
新的聚合函数可通过CREATE AGGREGATE命令注册。更多关于编写聚合函数以及转移函数的含义等信息请参见第 35.10 节。