whereとhavingの使い分け(SQL)

初めに

  • Progateを学習して躓いたところのアウトプットをすることで、 学習効率向上を図ると同時に備忘録がてらとしても日記を書いていきます。

whereとhavingとは?

whereについて

  • 特定のデータを取り出すためにどこの?を意味するwhereを使います。

  • select,fromを利用して抽象的なものを選択し、その後具体的なものを取り出すときにwhereは役に立ちます。

  • 使い方はwhere カラム名。どこの カラムの値を習得するか?という意味になります。

  • より具体的なものを選択したい場合はwhere カラム名 = 〇〇。どこのカラムのどういう値を取得するか? という意味になります。

havingについて

  • group byでグループ化したデータをさらに絞り込むためにhavingを利用します。

  • 使い方は

group byカラム名
having 値
  • 関数を取ることができる

whereとhavingの違いについて

  • whereはこれ単体で利用することができるが、havingはgroup byとともに利用する。

  • whereの方がhavingよりも抽象的な概念のために広い検索で利用されます。

  • whereはグループ化される前のテーブル全体からデータを取得する

  • havingはgroup byでグループ化されたものからデータを習得する。

結語

  • whereはグループ化される前のテーブル全体からデータ値を検索する。

  • havingはクループ化した後、グループ化されたものからデータ値を検索する。

  • havingの後に集計関数をとることができる。