【基本】MySQLのwhere, group by どう使う?

とっても基本的な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;

このように書くとエラーになってしまうはずです。

 

なんで?!と思いますよね。

ポイントは効率がいい処理の順番を想定することです。

  1. 何が欲しい?usersから各エリアと給料の合計。-> select XXXX from XXXX
  2. どのような条件?20歳以上。 -> where age XXX
  3. 手順2のデータをもとにエリアごとに取得。 -> group by XXXX

 

はじめはコツを掴むのが難しかったり

エラーにはまって難航するかもしれないですが

少しずつ慣れていきましょう(*^^*)

 

なにか参考になれば幸いです(*^^*)