SQL HAVING句の使い方

PostgreSQL logo PostgreSQL

HAVING句を使用して、GROUP BY句によって作られたグループの抽出条件を設定する方法を解説します。

構文

HAVING boolean_expression

boolean_expression: 条件式

サンプルプログラム

以下のemployeeテーブルに対して、SQLコマンドを実行していきます。

  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句によって作られたグループの抽出条件を設定する点です。

コメント

タイトルとURLをコピーしました