PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

52.2. pg_aggregate #

目录 pg_aggregate 存储关于聚集函数的信息。 聚集函数是对一组值(通常是匹配查询条件的每一行中的某一列) 进行运算并返回一个由所有这些值计算出的单一值的函数。 典型的聚集函数有 sum、count 和 max。pg_aggregate 中的每个条目都是 pg_proc 中一个条目的扩展。pg_proc 条目 携带该聚集的名称、输入和输出数据类型, 以及与普通函数类似的其他信息。

Table 52.2. \1 字段列说明

Column Type

Description

aggfnoid regproc (references pg_proc.oid)

聚集函数的 pg_proc OID

aggkind char

聚集类型: n 表示“普通”聚集, o 表示“有序集”聚集, h 表示“假想集”聚集

aggnumdirectargs int2

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

aggtransfn regproc (references pg_proc.oid)

Transition function

aggfinalfn regproc (references pg_proc.oid)

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

aggcombinefn regproc (references pg_proc.oid)

合并函数(如果没有则为零)

aggserialfn regproc (references pg_proc.oid)

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

aggdeserialfn regproc (references pg_proc.oid)

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

aggmtransfn regproc (references pg_proc.oid)

移动聚集模式的前向转移函数(如果没有则为零)

aggminvtransfn regproc (references pg_proc.oid)

移动聚集模式的逆转移函数(如果没有则为零)

aggmfinalfn regproc (references pg_proc.oid)

移动聚集模式的最终函数(如果没有则为零)

aggfinalextra bool

为真则向 aggfinalfn 传递额外的哑参数

aggmfinalextra bool

为真则向 aggmfinalfn 传递额外的哑参数

aggfinalmodify char

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

aggmfinalmodify char

类似 aggfinalmodify,但用于 aggmfinalfn

aggsortop oid (references pg_operator.oid)

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

aggtranstype oid (references pg_type.oid)

聚集函数内部过渡(状态)数据的数据类型

aggtransspace int4

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

aggmtranstype oid (references pg_type.oid)

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

aggmtransspace int4

移动聚集模式下转移状态数据的近似平均大小(以字节计), 为零则使用默认估计

agginitval text

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

aggminitval text

移动聚集模式下转移状态的初始值。这是一个文本字段, 以外在字符串表示的形式包含初始值。如果此字段为空, 则转移状态值初始为空。


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