BLOG

【プログラマー 研修 SQL】流の記録2

【はじめに】

こんにちは。流です。
今回はSQLのWHERE句とHAVING句について
まとめていきたいと思います。

【内容】

まずは今回使うテーブルを書いていきます。
テーブル名 products
name 商品名
classification 分類(1:ドリンク 2:フード 3:デザート)

nameclassification
コーラ|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は句がたくさんあり覚えるのが大変ですが頑張っていきたいと思います。

BLOGトップへ戻る