久々のSQLの備忘録
✅ はじめに
久々にSQLを触りまして、授業等で勉強していた知識が抜けていたので、備忘録としてSELECT・GROUP BY・WITH の役割をまとめてみようと思います。
「お菓子のアンケート」を例に考え、整理してみようと思います。
この記事では、SQLの基本構文をアンケート結果を使って直感的に説明します。
「なぜ使うのか?」「どういう時に便利なのか?」が腑に落ちることを目指します。
✅ 想定するテーブル(例:お菓子アンケート)
| student_name | gender | favorite_sweet | votes |
|---|---|---|---|
| Alice | female | chocolate | 2 |
| Bob | male | gummy | 1 |
| Carol | female | chocolate | 1 |
| Dave | male | chips | 1 |
| Emily | female | gummy | 1 |
✅ SELECT:欲しい情報を選ぶ
✔ 役割
テーブルから欲しい列だけを抜き出す命令
✔ 例:名前と好きなお菓子だけ知りたい
SELECT student_name, favorite_sweet
FROM students_sweets;
✅ GROUP BY:同じ種類をまとめて集計する
✔ 役割
共通の値を持つ行をグループにして、集計関数(SUM, COUNTなど)を適用する
✔ 例:お菓子の種類ごとに票数を合計したい!
SELECT favorite_sweet, SUM(votes) AS total_votes
FROM students_sweets
GROUP BY favorite_sweet;
✔ 結果
| favorite_sweet | total_votes |
|---|---|
| chocolate | 3 |
| gummy | 2 |
| chips | 1 |
✅ WITH:仮のテーブルを作ってスッキリ整理!
✔ 役割
複雑なSELECTやJOINを一度まとめて、再利用しやすくするための構文
✔ 例:女子だけの集計をしたい時に便利!
WITH female_votes AS (
SELECT *
FROM students_sweets
WHERE gender = 'female'
)
SELECT favorite_sweet, SUM(votes) AS total_votes
FROM female_votes
GROUP BY favorite_sweet;
✔ 結果
| favorite_sweet | total_votes |
|---|---|
| chocolate | 3 |
| gummy | 1 |
✅ まとめ
| 構文 | 役割 | イメージ |
|---|---|---|
SELECT |
欲しい情報を選ぶ | 「どの列を見たいか?」 |
GROUP BY |
同じグループにまとめる | 「種類ごとに箱に分けて集計」 |
WITH |
仮の表を作って整理する | 「中間テーブル(下ごしらえ)」 |
✅ おわりに
SQLは慣れるまで文法がややこしく見えますが、身近な例で考えると理解が進みます。
この記事が、久々にSQLを触る方や初学者の方の助けになれば幸いです。