Previous: group by 句 でのリスト指定
Up: 出力のグループ分け
Previous Page: group by 句 でのリスト指定
もしも、グループの選び方に、何らかの条件を置きたいときには、having句を用いる。 whereでの条件は、selectが行を選ぶ条件であり、group ? having は、こうして選び だされた行からグループを選ぶ条件を与える。行を選ぶwhere句には、もちろん集約関数 を置くことはできないが、グループを選ぶhaving句には、集約関数を使うことは許され ている。一方、having句にあらわれるのは、基本的には、selectのリストにあらわれて いる項目名だけだが、where句にはこうした制限はない。
以下、having句で、グループの条件をおいた例を示す。
select 書名,count(登録番号) from 書籍台帳,蔵書台帳 where マークナンバー.書籍台帳 = マークナンバー.蔵書台帳 group by 書名 having count(登録番号) > 1
select 著者名,count(書名) from 書籍台帳,書籍著者対応表,著者コード一覧 where マークナンバー.書籍台帳 = マークナンバー.書籍著者対応表 and 著者コード.書籍著者対応表 = 著者コード.著者コード一覧 group by 著者名 having count(書名) >= 10
maruyama@wakhok.ac.jp