WHERE句とHAVING句の違い

VB6,VBA,VBS,EXCEL,DOS,BAT,WSH,WORDの小技メモ

HTML/ CSS/ CGI-Perl/ JavaScript/ JavaApplet/ AccessUp/ Internet/ EnglishLearn/ ちゃいちゃん天使/ 天使メッセージ/ 飯田ワールド/ 結城ワールド/ プロフィール/ WEB相談室/ WEBアンテナ/ 燈明日記/ Perlノート/ 漢字起源/ yahoo

はじめに

本ページは、ウインドウズ系全般のティプスメモです。

そう、はじめはVB系のティプスメモだったのですが…いつの間にか、ウインドウズ系全般のティプスメモになってしまいました。

ちなみに、ティプス(Tips)とは、マニュアルに書かれていない技法や裏わざのことですが、本ページでは、私が経験してこれはと思ったノウハウのメモになっています。

尚、以下は本サイトの最新情報(ブログ)です。

それでは、本ページが何かのお役に立てれば幸いです。ごゆっくりご覧ください。

◆WHERE句とHAVING句の違い

SQLでのWHERE句とHAVING句は、どちらも、入力行を絞ります。では、違いは何でしょうか……。

WHERE句は、グループや集約を演算する前に入力行を絞ります。(従って、集約演算等を行う前準備)。 一方、HAVING句 は、グループと集約を演算した後に、グループ化された行を絞ります。

従って、WHERE句は集約前に評価されるので集約関数(SUM関数等)を持つことはできません。 一方、HAVING 句は、集約後に評価されるので集約関数(SUM関数等)を持つことができます。

つまり、はじめにWHERE句で行を絞り、それをGROUP BY句でグループ化し、それを(グループ内を)HAVING句でまた絞る・・・てな感じです。

ちなみに、GROUP BY句とHAVING句はペアで使うものと思っている人がいるかもしれませんが(実は自分)……。 実は、テーブル全体を一つの集合として、GROUP BY句なしで、HAVING句を問題なく使用することができます。

おわりに

以下のページには、すべてのTIPSがあります。もしよろしければ、どうぞ!

尚、ご感想、ご意見、誤字、脱字、間違い等がありましたら遠慮なくVB-TIPS掲示板へご指摘ください。

人のよいところをどんどん見つけよう