GROUP BY句とHAVING句

実践オラクルデータベース構築・運用

オラクルデータベース構築オラクルデータベース運用SQL書式PL/SQL書式Oracle Master試験

TOP SQL書式

GROUP BY句とHAVING句


スポンサードリンク
スポンサードリンク


GROUP BY句とHAVING句



本項では、行のグループを指定し、そのグループ化された行の条件を指定するには、「GROUP BY」句と「HAVING」句の使用方法を紹介します。

基本構文を以下に示します。
SELECT [列リスト]
FROM [表名]
WHERE [検索条件]
GROUP BY [列リスト]
HAVING [条件]
ORDER BY [列リスト]

※ORDER BY句はSQLの最後にくる必要がありますが、GROUP BY句とHAVING句の順番は逆でもかまいません。

@GROUP BY句
GROUP BY句によって、式の値に基づいて行のグループを求めることができます。GROUP BY句とORDER BY句は一緒に用いることができあます。SELECT句にはグループ関数またはGROUP BY句で指定した列を指定する必要があります。またORDER BY句は列別名を指定することができますが、GROUP BY句では列別名と列番号を指定することができません。

AHAVING句
グループ化された行に条件を指定するにはHAVING句を使用します。SELECT句で指定されていない列をHAVING句で指定することができます。グループ関数はHAVING句で条件を指定し、WHERE句では指定しません

※HAVING句はGROUP BY句を指定しなくても使用できます。

使用例)GROUP BY句とHAVING句の使用例
SQL> SELECT * FROM TEST2;

NUM     NAME            SAL
---------- -------------------- ----------
10       AAA             100000
20       BBB             200000
30       CCC             300000
40       DDD
50       AAA             150000
60       CCC             250000
70       DDD             350000

7行が選択されました。

SQL> SELECT SUM(SAL),NAME
2 FROM TEST2
3 GROUP BY NAME
4 ORDER BY 2;

SUM(SAL)    NAME
---------- --------------------
250000     AAA
200000     BBB
550000     CCC
350000     DDD


SQL> SELECT SUM(SAL),NAME
FROM TEST2
GROUP BY NAME
HAVING SUM(SAL)>500000
ORDER BY 2;

SUM(SAL)   NAME
---------- --------------------
550000     CCC

SQL>



スポンサードリンク

リンク集 / 免責事項サイトマップ問い合わせ
Copyright (C) 2012  実践オラクルデータベース構築・運用  All rights reserved