Skip to content

53.2.pg_aggregate#

目录pg_aggregate存储有关聚合函数的信息。聚合函数是对一组值(通常是与查询条件匹配的每一行的某一列)进行操作并从所有这些值计算出单个值的函数。典型的聚合函数有sumcountmaxpg_aggregate中的每个条目都是pg_proc中的一个条目的扩展。pg_proc条目包含聚合函数的名称、输入和输出数据类型以及与普通函数类似的其他信息。

表 53.2.pg_aggregate

列类型

描述

aggfnoid regproc(引用 pg_proc.oid

pg_proc 聚合函数的 OID

aggkind char

聚合类型:normal 聚合的 nordered-set 聚合的 ohypothetical-set 聚合的 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 传递额外虚拟参数为 True

aggmfinalextra bool

aggmfinalfn 传递额外虚拟参数为 True

aggfinalmodify char

是否 aggfinalfn 修改转换状态值:如果为只读,则为 r;如果 aggtransfn 无法在 aggfinalfn 后应用,则为 s;如果在值上写入,则为 w

aggmfinalmodify char

aggfinalmodify 类似,但适用于 aggmfinalfn

aggsortop oid(引用 pg_operator.oid

关联的排序运算符(无则为零)

aggtranstype oid(引用 pg_type.oid

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

aggtransspace int4

转换状态数据的近似平均大小(以字节为单位),或零以使用默认估计

aggmtranstype oid(引用 pg_type.oid

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

aggmtransspace int4

移动聚合模式的转换状态数据的近似平均大小(以字节为单位),或零以使用默认估计

agginitval text

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

aggminitval text

移动聚合模式的转换状态的初始值。这是一个文本字段,包含其外部字符串表示形式的初始值。如果此字段为 null,则转换状态值将从 null 开始。

使用CREATE AGGREGATE命令注册新的聚合函数。有关编写聚合函数以及转换函数等含义的详细信息,请参阅第 38.12 节