>>-GROUPING--(--expression--)----------------------------------><
スキーマは SYSIBM です。
GROUPING 関数は、グループ化集合およびスーパー・グループ (詳細については、 GROUP BY 文節を参照) に関連して使用され、 GROUP BY 応答セットで戻された行が、 expression によって表される列を除外し、 グループ化集合によって生成された行であるか否かを示す値を戻します。
引き数はどのようなタイプでも構いませんが、 GROUP BY 文節の項目でなければなりません。
この関数の結果は短精度整数 (small integer) です。 結果は以下のいずれかの値に設定されます。
例:
以下の照会を行うと、
SELECT SALES_DATE, SALES_PERSON, SUM(SALES) AS UNITS_SOLD, GROUPING(SALES_DATE) AS DATE_GROUP, GROUPING(SALES_PERSON) AS SALES_GROUP FROM SALES GROUP BY CUBE (SALES_DATE, SALES_PERSON) ORDER BY SALES_DATE, SALES_PERSON
結果は次のようになります。
SALES_DATE SALES_PERSON UNITS_SOLD DATE_GROUP SALES_GROUP ---------- --------------- ----------- ----------- ----------- 12/31/1995 GOUNOT 1 0 0 12/31/1995 LEE 6 0 0 12/31/1995 LUCCHESSI 1 0 0 12/31/1995 - 8 0 1 03/29/1996 GOUNOT 11 0 0 03/29/1996 LEE 12 0 0 03/29/1996 LUCCHESSI 4 0 0 03/29/1996 - 27 0 1 03/30/1996 GOUNOT 21 0 0 03/30/1996 LEE 21 0 0 03/30/1996 LUCCHESSI 4 0 0 03/30/1996 - 46 0 1 03/31/1996 GOUNOT 3 0 0 03/31/1996 LEE 27 0 0 03/31/1996 LUCCHESSI 1 0 0 03/31/1996 - 31 0 1 04/01/1996 GOUNOT 14 0 0 04/01/1996 LEE 25 0 0 04/01/1996 LUCCHESSI 4 0 0 04/01/1996 - 43 0 1 - GOUNOT 50 1 0 - LEE 91 1 0 - LUCCHESSI 14 1 0 - - 155 1 1
アプリケーションは、DATE_GROUP の値が 0 であり、 SALES_GROUP の値が 1 であることによって、 SALES_DATE の小計行を認識することができます。 SALES_PERSON の小計行は、DATE_GROUP の値が 1 であり、 SALES_GROUP の値が 0 であることによって認識することができます。 合計行は、DATE_GROUP と SALES_GROUP の両方の値が 1 であることによって認識することができます。