↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 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
测试版PostgreSQL 19 RC 1 尚未正式发布,内容与行为在正式发布前可能变化。正式内容请看当前版本。

52.2. pg_aggregate #

目录 pg_aggregate 存储关于聚合函数的信息。聚合函数是对一组值(典型的是每个匹配查询条件的行中的同一个列的值)进行操作的函数,它返回从这些值中计算出的单个值。典型的聚合函数是 sum、count 和 max。pg_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 表示只读,s 表示在 aggfinalfn 之后不能再应用 aggtransfn,或 w 表示它会写入该值

aggmfinalmodify char

类似于 aggfinalmodify,但用于 aggmfinalfn

aggsortop oid(引用 pg_operator.oid)

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

aggtranstype oid(引用 pg_type.oid)

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

aggtransspace int4

转移状态数据的近似平均尺寸(字节)。正值表示一个估算值,零表示使用默认估算值。负值表示状态数据的大小可以无限增长,例如聚合会累积输入行时(如 array_agg、string_agg)。

aggmtranstype oid(引用 pg_type.oid)

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

aggmtransspace int4

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

agginitval text

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

aggminitval text

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


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

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游会在正式发布前持续修订。