HAVING句を使用して、GROUP BY句によって作られたグループの抽出条件を設定する方法を解説します。
構文
HAVING boolean_expression
boolean_expression: 条件式
サンプルプログラム
name | age | department_id
---------+-----+---------------
Taro | 23 | 5
Hanako | 23 | 4
Jiro | 22 | 5
Haruo | 42 | 2
Natsuko | 35 | 1
Akio | 28 | 5
Fuyumi | 26 | 3
-- employeeテーブルのレコードをdepartment_idでグループ化し、列数が2以上のグループのdepartment_id, countを参照
SELECT department_id, COUNT(*) FROM employee GROUP BY department_id HAVING COUNT(*) >= 2;
■出力結果
department_id | count
---------------+-------
5 | 3
補足情報
基本的な使い方はWHERE句と同じです。異なるのは、WHERE句が行の抽出条件を設定するのに対して、HAVING句ではGROUP BY句によって作られたグループの抽出条件を設定する点です。
コメント