グループ値の要約
1 つ以上の列の値、または式の結果によって結果表の行をグループに分けることができます。 次に、グループごとに集約関数を適用できます。
プロシージャー
グループ値を要約するには :
GROUP BY節を使います。
GROUP BY 文節を使用するとき、この文節を置く場所は、FROM 文節およびすべての WHERE 文節の後ろで、ORDER BY 文節の前です。
GROUP BY 文節で名前を指定した列を除き、SELECT ステートメントでは、選択される他のどの列も、いずれかの集約関数のオペランドとして指定する必要があります。
GROUP BY 節で指定した列にNULL 値が含まれる場合、Db2はそれらのNULL 値が等しいと見なします。 つまり、すべての NULL が単一のグループを形成することになります。
例
- 例: 1 つの列を使用する GROUP BY 節
- 次の SQL ステートメントは、部門ごとに、その部門内の最低と最高の教育レベルをリストします。
SELECT WORKDEPT, MIN(EDLEVEL), MAX(EDLEVEL) FROM DSN8D10.EMP GROUP BY WORKDEPT; - 例: 複数の列を使用する GROUP BY 節
- 行は、複数の列の値別にグループ分けすることができます。 例えば、以下のステートメントは、部門 A00 とC01 の男女平均給与を検出します。
SELECT WORKDEPT, SEX, AVG(SALARY) AS AVG_SALARY FROM DSN8D10.EMP WHERE WORKDEPT IN ('A00', 'C01') GROUP BY WORKDEPT, SEX; - 例: 式を使用する GROUP BY 節
- 式の結果によって行をグループ化することもできます。 たとえば、次のステートメントは、部門を指導者でグループ化し、各グループの最低と最高教育レベルをリストしています。
SELECT SUBSTR(WORKDEPT,1,1), MIN(EDLEVEL), MAX(EDLEVEL) FROM DSN8D10.EMP GROUP BY SUBSTR(WORKDEPT,1,1);