GROUP BYとHAVING

なんとなくの理解だったGROUP BYとHAVINGについて調べました〜

 

GROUP BYとは

データをグループ化する関数です。

 

 

使い方

GROUP BY カラム名 とする事で、カラムの値が同じものをグループ化してくれます。 

 

以下のようなreviewsテーブルがあるとします。

gyazo.com

 

以下のSQLだと、カラム名と値が同じデータをまとめて、その数を返してくれます。

SELECT カラム名, COUNT(カラム名) FROM テーブル名 GROUP BY カラム名;

gyazo.com

 

SELECT * FROM reviews GROUP BY rate; だと変な形。。。

 gyazo.com

 
HAVINGで抽出結果を絞る

条件を絞る関数です。

GROUP BYと一緒に使う事で、グループ化したデータをHAVINGで絞り込むことができます。

gyazo.com

 

gyazo.com

 

条件を絞るという点ではWHEREと同じですが、実行される順番が違います。

WHEREはGROUP BYより先に実行され、

HAVINGはGROUP BYより後に実行されます。

 

 

感想その他

SQLの関数の実行順序や、それによって気をつけないといけない事柄についても整理したいです。