SQL whereとhavingの違い

まず、SQLは以下の順番で実行される。

1.from
2.where
3.group by
4.having
5.select
6.order by

なので、havingは、group by後の結果に対して条件を指定することが出来る。
つまり、group byがなければ、whereとhavingは同じとなる。

以下の3つは同じ結果になる。

where
    a.age = 30 and
    a.kind = 1
;

having
    a.age = 30 and
    a.kind = 1
;

where
    a.age = 30
having
    a.kind = 1
;

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です