他のバージョンの文書 16 | 15 | 14 | 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

52.2. pg_aggregate

pg_aggregateカタログには集約関数の情報が格納されています。 集約関数とは、値の集合(多くの場合は問い合わせ条件に該当する各行の1つの列)にある操作を行い、それらすべての値の演算の結果得られる単一の値を返します。 集約関数の代表的なものはsumcountそして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

順序集合や仮想集合の集約関数では、(集約されていない)複数の引数は、可変長配列として1個の引数と見なします。 引数が数が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に追加の仮引数を渡す場合はTrue

aggmfinalextra bool

aggmfinalfnに追加の仮引数を渡す場合はTrue

aggfinalmodify char

aggfinalfnが遷移状態値を変更するかどうか。 読み出し専用ならraggfinalfnの後でaggtransfnを適用できなければs、その値に書き込むならw

aggmfinalmodify char

aggmfinalfn用であることを除き、aggfinalmodifyと同様。

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コマンドで登録されます。 集約関数の書き方や遷移関数の説明などの詳細は38.12を参照してください。