Previous: group by 句 でのリスト指定
Up: 出力のグループ分け
Previous Page: group by 句 でのリスト指定

having 句

もしも、グループの選び方に、何らかの条件を置きたいときには、having句を用いる。 whereでの条件は、selectが行を選ぶ条件であり、group ? having は、こうして選び だされた行からグループを選ぶ条件を与える。行を選ぶwhere句には、もちろん集約関数 を置くことはできないが、グループを選ぶhaving句には、集約関数を使うことは許され ている。一方、having句にあらわれるのは、基本的には、selectのリストにあらわれて いる項目名だけだが、where句にはこうした制限はない。

以下、having句で、グループの条件をおいた例を示す。

例 61: 図書館に二冊以上ある本の検索

select 書名,count(登録番号)
	from   書籍台帳,蔵書台帳
	where  マークナンバー.書籍台帳 = マークナンバー.蔵書台帳
	group by 書名
	having  count(登録番号) > 1

例 62: 十冊以上著書のある著者の検索

select 著者名,count(書名)
	from   書籍台帳,書籍著者対応表,著者コード一覧
	where  マークナンバー.書籍台帳 = マークナンバー.書籍著者対応表
	  and  著者コード.書籍著者対応表 = 著者コード.著者コード一覧
	group by 著者名
	having  count(書名) >= 10

maruyama@wakhok.ac.jp
1995年02月10日 (金) 00時49分16秒 JST