このトピックでは、GROUP BY句について説明します。
構文
オプションのGROUPBY句の形式は次のとおりです。
GROUP BY {式 | ROLLUP ( expr_list ) |
CUBE ( expr_list ) | GROUPING SETS ( expr_list ) } [, ...] 説明
GROUP BY句は、選択した式の同じ値を共有するすべての選択した行を1行に凝縮します。 expressionには、入力列名、またはSELECTリストで指定された出力列の名前または序数を指定できます。 入力列の値で構成される式にすることもできます。 あいまいな場合、GROUP BY名は出力列ではなく入力列の名前として解釈されます。
ROLLUP、CUBE、およびGROUPING SETSは、多次元分析用のGROUPBY句の拡張です。
集計関数が使用される場合、集計関数は各グループのすべての行にわたって計算されます。 これにより、グループごとに個別の値が生成されます。 GROUP BY句を使用できない場合、集計関数は、選択したすべての行で計算される単一の値を生成します。 GROUP BY句を使用すると、SELECTリスト式は、集計関数以外ではグループ化されていない列を参照できません。 これは、グループ化されていない列に対して複数の値が返される可能性があるためです。
例
次の例では、emp テーブルの sal 列の合計を計算し、結果を部門番号でグループ化します。
SELECTのdeptno、合計としてSUM(sal)
FROM emp
GROUP BY deptno;
deptno | トータル
------- ------------
10 | 8750.00
20 | 10875.00
30 | 9400.00
(3行)