2025年9月25日: PostgreSQL 18 发布!
支持的版本:当前18)/ 17 / 16 / 15 / 14 / 13
开发版本:devel
不支持的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

52.2. pg_aggregate #

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

表 52.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;如果 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 命令进行注册。有关编写聚合函数以及转换函数等的含义的更多信息,请参阅 第 36.12 节

提交更正

如果您在文档中发现任何不正确的内容、与您在使用特定功能时的经验不符的内容,或者需要进一步澄清的内容,请使用 此表格 报告文档问题。