PostgreSQL 13.1 中文入门教程 PostgreSQL pg_aggregate

2024-02-25 开发教程 PostgreSQL 13.1 中文入门教程 匿名 0

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

表 51.2. pg_aggregateColumns

列类型

描述

aggfnoidregproc(references pg_proc.oid)

聚集函数的pg_procOID

aggkindchar

Aggregate kind: n表示 “普通”聚集, o表示 “有序集”聚集, 或 h表示 “假想集”聚集

aggnumdirectargsint2

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

aggtransfnregproc(references pg_proc.oid)

转移函数

aggfinalfnregproc(references pg_proc.oid)

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

aggcombinefnregproc(references pg_proc.oid)

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

aggserialfnregproc(references pg_proc.oid)

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

aggdeserialfnregproc(references pg_proc.oid)

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

aggmtransfnregproc(references pg_proc.oid)

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

aggminvtransfnregproc(references pg_proc.oid)

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

aggmfinalfnregproc(references pg_proc.oid)

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

aggfinalextrabool

True 将传递额外的虚拟参数到 aggfinalfn

aggmfinalextrabool

True 将传递额外的虚拟参数到 aggmfinalfn

aggfinalmodifychar

aggfinalfn是否修改传递状态值: 如果是只读则为r, 如果不能在aggfinalfn之后应用aggtransfn则为s, 或者如果它修改该值则为w

aggmfinalmodifychar

aggfinalmodify类似,但是用于aggmfinalfn

aggsortopoid(references pg_operator.oid)

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

aggtranstypeoid(references pg_type.oid)

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

aggtransspaceint4

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

aggmtranstypeoid(references pg_type.oid)

聚集函数用于移动聚集欧氏的内部转移(状态)数据的数据类型(如果没有则为零)

aggmtransspaceint4

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

agginitvaltext

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

aggminitvaltext

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

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