前回、GROUP BYについて説明しましたが、
せっかくなので今回はGROUP BYを使用する際の注意点について説明しようと思います。
前回使用したテーブルを今回も使い回します。
name | subject | score |
---|---|---|
鈴木 | 国語 | 70 |
鈴木 | 数学 | 80 |
田中 | 国語 | 90 |
田中 | 数学 | 60 |
田中 | 英語 | 80 |
山田 | 数学 | 70 |
前回は、上記のテーブルに対して「nameごとのscoreの合計値を算出する」というSQLを作成しました。
再掲になりますが、SQLは以下の通り。
SQL
SELECT name, SUM(score) FROM TABLE1 GROUP BY name;
上記のようなSQLであるならば、問題なく実行することができます。
ですが、以下のようなSQLではエラーになってしまいます。
SQL
SELECT name, SUM(score) FROM TABLE1 GROUP BY subject;
理屈で考えればわかると思うのですが、「nameごとにscoreの合計値を算出」しているのに、
「subjectごとに表示する」なんてことができるはずがないので、エラーになって当然なんですけどね。
GROUP BYを使い始めた辺りはこの辺りで混乱しやすいので、注意しましょう。