集約関数は複数の入力値から単一の結果を計算します。表9-37に組み込み集約関数を示します。集約関数の特殊な構文に関する考察は項4.2.7で説明されています。その他の入門的な情報については、項2.7を参照してください。
表 9-37. 集約関数
上記の関数は、count関数を除き、1行も選択されなかった場合NULL値を返すことに注意してください。特に、行の選択がないsum関数は、予想されるであろうゼロではなくNULLを返します。必要であれば、NULLをゼロと交換する目的でcoalesce関数を使うことできます。
注意: bool_and、bool_or論理集約関数は標準SQLの集約関数every、anyまたはsomeに対応します。anyとsomeについてですが、標準の構文には曖昧さがあるようです。
SELECT b1 = ANY((SELECT b2 FROM t2 ...)) FROM t1 ...;ここで、ANYは、副問い合わせの先頭とも、選択式が1行を返すとしたら集約関数とも取ることができます。したがって、標準ではこうした集約関数に名前がありません。
注意: 他のSQLデータベース管理システムでの作業に親しんだユーザは、count集約関数がテーブル全体に適用される場合の性能に驚かれるかも知れません。
SELECT count(*) FROM sometable;のような問い合わせはテーブル全体を逐次スキャンを用いてPostgreSQLにより実行されます。