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 節

提交更正

如果您在文件中發現任何不正確的內容、與您在使用特定功能時的經驗不符的內容,或者需要進一步澄清的內容,請使用 此表格 報告文件問題。