IT資格用語解説基本情報技術者試験・データベース言語
集約関数
更新日:
用語解説
集約関数は、複数行の値を一つの集計値へまとめるSQL関数です。代表例はCOUNT、SUM、AVG、MAX、MINで、表全体又はGROUP BYで分けた各グループに対して計算します。
■ 試験で押さえるポイント
COUNT(*)は行数を数え、COUNT(列)はその列がNULLでない行数、COUNT(DISTINCT 列)はNULLを除く異なる値の数を数えます。三者の結果は同じとは限りません。
SUM(列)とAVG(列)はNULLを除外し、AVGはです。NULLを0として分母へ含めるわけではありません。
WHEREはグループ化前の行を絞り、HAVINGはGROUP BYと集約後のグループを絞ります。集約結果を条件に使う場合は通常HAVINGです。
対象行が0件のときCOUNTは0を返しますが、SUMやAVGなどは通常NULLです。0件の合計を0として表示したい場合はCOALESCEなどで変換します。
■ 選択肢での判断ポイント
NULLを含む表でCOUNT(*)、COUNT(列)、AVGを実際に計算し、分母を確認します。集約前の条件か集約後の条件かでWHEREとHAVINGを選びます。
例: 得点が80、NULL、40の三行なら、、、です。NULLを0点としてにはしません。