集約関数とは?しゅうやくかんすう
集約関数とは、複数行をまとめて1つの値を返す関数。COUNT・SUM・AVG・MAX・MINがあり、GROUP BYで指定した列の値ごとにグループを作って適用する。グループに対する絞り込みはHAVING句で書き、行に対する絞り込みのWHERE句と役割が分かれる。
最終更新:2026-10-09
この語が出る過去問を解く →具体例
部門ごとの平均給与を出しつつ在籍3人未満の部門を除くなら、GROUP BY 部門コードでまとめ、HAVING COUNT(*) >= 3 と書く。特定年度の入社者に限る条件は行単位なのでWHERE句に置く。
試験での引っ掛け
COUNT(*)は行数を数えるがCOUNT(列名)はNULLを除いて数えるため値が食い違う。AVGもNULLを除外して平均するので、NULLを0とみなした平均とは一致しない。WHEREに集約関数は書けない。
関連用語
出た過去問
出典:令和元年度 秋期 基本情報技術者試験 午前 問26(IPA)解説で登場
“得点”表から、学生ごとに全科目の点数の平均を算出し、平均が80点以上の学生の学生番号とその平均点を求める。aに入れる適切な字句はどれか。ここで、実線の下線は主…
正解:学生番号 HAVING AVG(点数) >= 80
要点:集約結果での絞り込みはWHEREでなくHAVINGを使う
学生ごとの平均を出すには、集計の単位となる学生番号でGROUP BYする必要がある。さらに「平均が80点以上」という条件は集約関数の結果に対する絞り込みなので、行単位で働くWHEREではなくグループ単位で働くHAVINGを使う。よって学生番号でグループ化し、HAVINGで平均点を判定する形になる。
出典・参考
公式シラバスの3 技術要素 > 3. データ操作 > (2) データベース言語に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。