AGRUPAMENTO função agregada

Usado em conjunto com agrupamento-conjuntos e super-grupos, a função AGRUPAMENTO retorna um valor que indica se uma linha retornada ou não em um conjunto de respostas GROUP BY é uma linha gerada por um conjunto de agrupamento que exclui a coluna representada por expression.

Read syntax diagramSkip visual syntax diagramGROUPING(expression )

O esquema é SYSIBM.

expressão

Uma expressão que corresponde a um agrupamento-expressão a partir da cláusula GROUP BY da mesma subselect.

O resultado da função é um pequeno inteiro. Ele é configurado para um dos seguintes valores:
1
O valor de expression na linha devolvida é um valor nulo, e a linha foi gerada pelo super-grupo. Esta linha gerada pode ser usada para fornecer valores sub-total para a expressão GROUP BY.
0
O valor é outro do que o valor listado anteriormente.

Exemplo

A consulta a seguir:
   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
resulta em:
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

Um aplicativo pode reconhecer uma linha sub-total SALES_DATE pelo fato de que o valor de DATE_GROUP é 0 e o valor de SALES_GROUP é 1. Uma linha sub-total SALES_PERSON pode ser reconhecida pelo fato de que o valor de DATE_GROUP é 1 e o valor de SALES_GROUP é 0. Uma grande linha total pode ser reconhecida pelo valor 1 para ambos DATE_GROUP e SALES_GROUP.