「GROUP BYって何?」
応用情報技術者試験のSQL分野で超頻出ですが、
- 集計?
- SUMとの違い?
- HAVINGって何?
で混乱する人がかなり多いテーマです。
この記事では、
- GROUP BYとは?
- 集約関数との関係
- HAVING
- 試験での頻出ポイント
を5分で理解できるように解説します!
まず結論
GROUP BYとは?
「同じ値ごとにグループ化する機能」
です!
超簡単にいうと
例えば:
| 名前 | 部署 | 売上 |
|---|---|---|
| 田中 | 営業 | 100 |
| 鈴木 | 営業 | 200 |
| 佐藤 | 開発 | 150 |
「部署ごとの売上合計」
を出したい!
そこでGROUP BY
同じ部署でまとめる!
本棚で理解しよう
かなり分かりやすい👇
整理前
本がバラバラ。
GROUP BY後
- 営業グループ
- 開発グループ
に分類!
基本構文
SELECT 部署, SUM(売上)
FROM 売上表
GROUP BY 部署;
流れ
① 部署ごとに分類
↓
② 各グループでSUM実行
結果
| 部署 | 合計 |
|---|---|
| 営業 | 300 |
| 開発 | 150 |
集約関数
超頻出!
代表例
| 関数 | 内容 |
|---|---|
| SUM | 合計 |
| AVG | 平均 |
| COUNT | 件数 |
| MAX | 最大 |
| MIN | 最小 |
COUNT(*)
行数カウント
例
SELECT COUNT(*)
FROM 学生;
GROUP BYなしとの違い
GROUP BYなし
SELECT SUM(売上)
FROM 売上表;
↓
全体合計。
GROUP BYあり
GROUP BY 部署
↓
部署別集計。
WHEREとの違い
ここ超重要!
WHERE
グループ化前に絞る
HAVING
グループ化後に絞る
例
SELECT 部署, SUM(売上)
FROM 売上表
GROUP BY 部署
HAVING SUM(売上) >= 200;
意味
合計200以上の部署だけ表示
実行順序
応用情報で超頻出!
基本順序
FROM
↓
WHERE
↓
GROUP BY
↓
HAVING
↓
SELECT
↓
ORDER BY
ORDER BYとは?
並び替え
GROUP BYの注意
超頻出!
SELECTに書けるもの
GROUP BY使用時は:
- GROUP BY列
- 集約関数
のみ基本OK。
NG例
SELECT 名前, SUM(売上)
FROM 売上表
GROUP BY 部署;
なぜNG?
名前が1つに決まらないから。
応用情報で超頻出
かなり狙われる👇
- GROUP BY
- SUM
- COUNT
- HAVING
- 実行順序
よくあるひっかけ
「HAVINGは行を絞る」
→ 違う!
HAVINGは:
グループを絞る
1分で復習!
GROUP BY
同じ値で分類
集約関数
- SUM
- AVG
- COUNT
WHERE
グループ化前条件
HAVING
グループ化後条件
練習問題
問題
GROUP BYの役割として最も適切なものはどれか。
ア
行を削除する
イ
同じ値ごとにデータを分類する
ウ
表を結合する
エ
索引を作成する
解答
正解:イ
解説
GROUP BYは、指定した列の同じ値ごとにデータをグループ化するために使用します。
まとめ
GROUP BYとは
「同じ値でグループ化」
超重要
- SUM
- COUNT
- HAVING
- 実行順序
まずは、
「GROUP BY=分類」
「集約関数=グループごと計算」
このイメージを持つとかなり理解しやすくなります!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント