【はじめに】
こんにちは。流です。
今回はSQLのWHERE句とHAVING句について
まとめていきたいと思います。
【内容】
まずは今回使うテーブルを書いていきます。
テーブル名 products
name 商品名
classification 分類(1:ドリンク 2:フード 3:デザート)
name | classification |
---|---|
コーラ | |1 |
オレンジジュース | |1 |
ハンバーグ | |2 |
ラーメン | |2 |
ピラフ | |2 |
プリン | |3 |
アイス | |3 |
チョコ | |3 |
WHERE句
WHERE句は表示するものを絞り込むことができます。
例えばclassification(分類)が1(ドリンク)のもののみを表示するときなどに使います。
SELECT name, classification FROM products WHERE classification = 1 ;
HAVING句
HAVING句は集計結果に対する絞り込みを行うことができます。
例えばclassification(分類)でグループ化し、 classification(分類) に属しているものを数えたときに、その数が3以上のもののみ表示するときなどに使います。
SELECT classification, COUNT(name) AS classification_total FROM products GROUP BY classification HAVING classification_total >= 3 ;
WHERE句とHAVING句の違い
HAVING句は集計関数を使用できるというほかにWHERE句とHAVING句では動作するタイミングが違います。
動作順序は WHERE→GROUP BY→HAVING というように動作します。
ですので、
WHERE句はグループ化される前のデータの抽出条件
HAVING句はグループ化した後のデータ抽出条件
ということになります。
【さいごに】
最後までありがとうございました。
SQLは句がたくさんあり覚えるのが大変ですが頑張っていきたいと思います。