集約関数は複数の入力値から単一の結果を計算します。表9-45および表9-46に組み込み集約関数を示します。集約関数の特殊な構文に関する考察は項4.2.7で説明されています。初歩的な情報については項2.7を参照して下さい。少なくとも1つの入力値が真ならば真。入力された値が指定したデリミタで区切られた一つの文字列に連結されます。項9.14.1.7も参照)上記の関数は、count関数を除き、1行も選択されなかった場合NULL値を返すことに注意してください。行の選択がないsum関数は、予想されるであろうゼロではなくNULLを返し、そしてarray_aggは、入力行が存在しない場合に、空配列ではなくNULLを返します。必要であれば、NULLをゼロまたは空配列と交換する目的でcoalesce関数を使うことができます。bool_and、bool_or論理集約関数は標準SQLの集約関数every、anyまたはsomeに対応します。anyとsomeについてですが、標準の構文には曖昧さがあるようです。...;ここで、副問い合わせが論理値での1行を返す場合、ANYは副問い合わせを導入するもの、もしくは集約関数であるものいずれかとみなすことができます。従って、これらの集約関数に標準の名前を付けることはできません。他のSQLデータベース管理システムでの作業に親しんだユーザは、count集約関数がテーブル全体に適用される場合の性能に失望するかも知れません。sometable;のような問い合わせはテーブルサイズに比例した労力が必要です。PostgreSQLはテーブル全体か、そのテーブルの全ての行を含んだインデックス全体のスキャンを必要とします。集約関数array_aggとstring_agg、およびxmlagg、そして類似のユーザ定義の集約関数は、入力値の順序に依存した意味のある別の結果値を生成します。BY句を書くことで制御可能となります。別の方法として、並び替えられた副問い合わせから入力値を供給することでも上手くいきます。tab;しかしこの構文はSQL標準では許されておらず、他のデータベースシステムに移植性はありません。統計解析処理によく使用される集約関数を表9-46に示します。(これらは、より一般的に使用される集約関数との混乱を防ぐために別出ししました。説明の部分におけるNは、すべての入力式が非NULLの入力行の個数を表します。すべての場合にて、例えばNが0の時など計算が無意味である場合にはNULLが返されます。