GROUP BY・集計関数とは?
GROUP BY・集計関数とは、GROUP BYは、SQLにおいて指定した列の値が同じレコードをグループにまとめて集計するための命令であり、COUNT(件数)、SUM(合計)、AVG(平均)、MAX(最大値)、MIN(最小値)といった集計関数と組み合わせて使うのが一般的である。例えば売上データを「商品カテゴリごと」にグループ化して各カテゴリの売上合計を求める、といった分析処理はGROUP BYとSUM関数の組み合わせで実現できる。ビッグデータ時代において、大量の生データから傾向や集計値を素早く導き出すための基本的な分析手段として、業務データの活用に欠かせない操作である。
ITサービスマネージャ試験の過去問では1回出題されています。
グループバイ・しゅうけいかんすう
GROUP BY・集計関数の意味
GROUP BYは、SQLにおいて指定した列の値が同じレコードをグループにまとめて集計するための命令であり、COUNT(件数)、SUM(合計)、AVG(平均)、MAX(最大値)、MIN(最小値)といった集計関数と組み合わせて使うのが一般的である。例えば売上データを「商品カテゴリごと」にグループ化して各カテゴリの売上合計を求める、といった分析処理はGROUP BYとSUM関数の組み合わせで実現できる。ビッグデータ時代において、大量の生データから傾向や集計値を素早く導き出すための基本的な分析手段として、業務データの活用に欠かせない操作である。
GROUP BY・集計関数の具体例
売上テーブルに対して「GROUP BY 商品カテゴリ」で分類し、SUM関数で各カテゴリの売上金額の合計を算出して、どのカテゴリが最も売れているかを分析する。
GROUP BY・集計関数は試験でどう引っ掛けられる?
GROUP BYで集計した結果に対する絞り込みにはWHERE句ではなくHAVING句を使う必要がある点が、SQL操作の細かい違いとして問われることがある。
GROUP BY・集計関数と関連する用語
GROUP BY・集計関数が出た過去問
“社員”表から、役割名がプログラマである社員が3人以上所属している部門の部門名を取得するSQL文はどれか。ここで、実線の下線は主キーを表す。 社員(社員番号, …
正解:SELECT 部門名 FROM 社員 WHERE 役割名 = 'プログラマ' GROUP BY 部門名 HAVING COUNT(*) >= 3
要点:行の条件はWHERE、集約後の条件はHAVINGに書く
SQLの評価順は、WHEREで行を絞り込み、GROUP BYで集約し、HAVINGで集約結果を絞り込む、という順序になる。したがって役割名の条件は行単位なのでWHEREに、人数3人以上という集約後の条件はHAVING COUNT(*)>=3に書く必要がある。集約関数をWHEREに書くことはできず、HAVINGをWHEREより前に置くこともできない。
出典:平成30年度 秋期 ITサービスマネージャ試験 am2 問21(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。