Microsoft Access Club >SQL入門講座 >このページ >次頁 < 前項  サイト内検索
 

グループ化におけるWHERE句とHAVING句の利用方法 : SQL入門講座



WHERE句とHAVING句は、グループ化を行なっているSQLステートメントで条件抽出を行なう演算子です。抽出後にグループ化を行なう場合 はWHERE句、グループ化を行なってから抽出を行なう場合 はHAVING句と使い方を区別しますが、この違い以外に、集計関数を用いない場合はWHERE句、集計関数を用いる場合はHAVING句を用いる違いもあります。

実際、WHERE句、HAVING句のいずれでも用いることができる場合は、WHERE句を用いるほうが無難です。この理由を以下に見ていきましょう。

サンプルテーブル

サンプルテーブル(社員管理)を下記のように用意します。

売上日 社員名 性別 売上額 職種
2004/01/23 橘 修平 男性 52100 一般職
2004/02/04 柴田 喜一 男性 654100 技能職
2004/02/04 柴田 喜一 男性 7892510 技能職
2004/03/25 正道 良一 男性 4875210 薬剤師
2004/04/30 田中 邦子 女性 785100 一般職
2004/04/30 田中 邦子 女性 4789210 一般職
2004/07/29 草薙 良子 女性 120310 医師
2004/08/10 田中 幸恵 女性 7986620 一般職
2004/09/30 中村 幸三 男性 477123 技能職

WHERE句の事例

「社員管理」テーブルの「性別」フィールドでWHERE句を記述し女性のみのレコードを抽出します。次に、「職種」 フィールドでグループを行ないます。最後に、性別フィールドのレコードカウントを求めます。

  • SELECT Count(性別) AS カウント,職種 FROM 社員管理 WHERE 性別 ='女性' GROUP BY 職種;

結果

このSQLステートメントを実行すると、下記のクエリ値を求めることができます。

クエリのデザインビュー

クエリのデザインビューで見ると、以下のようになっています。

HAVING句の事例

次に、上記のSQLステートメントをHAVING句に置き換えてみましょう。

  • SELECT Count(性別) AS カウント,職種 FROM 社員管理 GROUP BY 職種 HAVING 性別 ='女性';

結果

このSQLステートメントを実行すると、下記のエラーメッセージが表示されます。

クエリのデザインビュー

クエリのデザインビューで見ると、以下のようになっています。

留意事項
  1. 集計クエリ内で抽出条件欄に'女性'と記述していますが、集計欄は"演算"になっています。
  2. よって、集計関数を用いない場合、HAVING句は利用できないことがわかります。

2004/08/29

ページの先頭へ 前ページへ戻る

 


グループ化におけるWHERE句とHAVING句の利用方法 : SQL入門講座


-Microsoft Access Club-

cPanel あるいは PLESKコントロールパネルをインストールした専用レンタルサーバのディスカウントプランを期間限定で公開しています。
cPanel・PLESKコントロールパネルを備えた専用レンタルサーバ....。