受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: devel

51.2. pg_aggregate #

目录pg_aggregate存储关于聚合函数的信息。 聚合函数是对一组值(典型的是每个匹配查询条件的行中的同一个列的值)进行操作的函数,它返回从这些值中计算出的单个值。 典型的聚合函数是 sumcountmaxpg_aggregate里的每个项都是一个pg_proc项的扩展。 pg_proc项记载该聚合的名字、输入和输出数据类型,以及其他一些和普通函数类似的信息。

Table 51.2. pg_aggregate

列类型

描述

aggfnoid regproc (引用 pg_proc.oid

聚合函数的pg_proc OID

aggkind char

聚合种类: n 表示普通聚合, o 表示有序集聚合,或 h 表示假想集聚合

aggnumdirectargs int2

有序集或假想集聚合的直接(非聚合)参数个数,其中一个可变参数数组算作一个参数。 如果它等于pronargs,则该聚合必定是可变参数的,并且该可变参数数组既描述聚合参数也描述最终的直接参数。 对普通聚合总为零。

aggtransfn regproc (引用 pg_proc.oid

转移函数

aggfinalfn regproc (引用 pg_proc.oid

最终函数(如果没有就为零)

aggcombinefn regproc (引用 pg_proc.oid

结合函数(如果没有就为零)

aggserialfn regproc (引用 pg_proc.oid

序列化函数(如果没有就为零)

aggdeserialfn regproc (引用 pg_proc.oid

反序列化函数(如果没有就为零)

aggmtransfn regproc (引用 pg_proc.oid

用于移动聚合模式的向前转移函数(如果没有就为零)

aggminvtransfn regproc (引用 pg_proc.oid

用于移动聚合模式的反向转移函数(如果没有就为零)

aggmfinalfn regproc (引用 pg_proc.oid

用于移动聚合模式的最终函数(如果没有就为零)

aggfinalextra bool

若为真,则会向aggfinalfn传递额外的虚拟参数

aggmfinalextra bool

若为真,则会向aggmfinalfn传递额外的虚拟参数

aggfinalmodify char

aggfinalfn 是否修改转移状态值: r 表示只读, s 表示在aggfinalfn之后不能再应用aggtransfn,或 w 表示它会写入该值

aggmfinalmodify char

类似于aggfinalmodify,但用于aggmfinalfn

aggsortop oid (引用 pg_operator.oid

相关联的排序操作符(如果没有则为0)

aggtranstype oid (引用 pg_type.oid

聚合函数的内部转移(状态)数据的数据类型

aggtransspace int4

转移状态数据的近似平均尺寸(字节),或者为零表示使用一个默认估算值

aggmtranstype oid (引用 pg_type.oid

聚合函数在移动聚合模式下内部转移(状态)数据的数据类型(如果没有则为零)

aggmtransspace int4

移动聚合模式的转移状态数据的近似平均尺寸(字节),或者为零表示使用默认估算值

agginitval text

转移状态的初始值。这是一个文本字段,包含初始值的外部字符串表示形式。如果此字段为空,则转移状态值从空值开始。

aggminitval text

用于移动聚合模式的转移状态初值。这是一个文本域,它包含了以其文本字符串形式表达的初值。 如果这个域为空,则转移状态值从空值开始。


新的聚合函数可通过CREATE AGGREGATE命令注册。 更多关于编写聚合函数以及转移函数的含义等信息请参见Section 36.12

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。