とっても基本的なMySQLのwhere, group byですが
はじめのうちは躓く方も多いかと思ったので書いてみました。
例:以下テーブルがあったとします。
テーブル:users
カラム:
・id : ID
・age : 年齢
・area : 地域
・salary : 給料
ここでエリアごとに年齢20歳以上の給料合計を取得してみましょう。
where, group byを使って値を取得してみよう
ここでMySQLを書いてみましょう。
select area, sum(salary) from users where age >= 20 group by area;
ここでポイントなのがwhere , group by の順番です。
select area, sum(salary) from users group by area where age >= 20;
このように書くとエラーになってしまうはずです。
なんで?!と思いますよね。
ポイントは効率がいい処理の順番を想定することです。
- 何が欲しい?usersから各エリアと給料の合計。-> select XXXX from XXXX
- どのような条件?20歳以上。 -> where age XXX
- 手順2のデータをもとにエリアごとに取得。 -> group by XXXX
はじめはコツを掴むのが難しかったり
エラーにはまって難航するかもしれないですが
少しずつ慣れていきましょう(*^^*)
なにか参考になれば幸いです(*^^*)