Функция GROUPING
:
-
Используется либо с оператором
CUBE
, либо с операторомROLLUP
-
Используется для поиска групп, формирующих промежуточные итоги в строке
-
Используется, чтобы отличать хранимые значения
NULL
от значенийNULL
, созданных с помощью операторовROLLUP
илиCUBE
-
Возвращает
0
или1
Функция GROUPING может использоваться либо с оператором CUBE
, либо с оператором ROLLUP
, чтобы помочь понять, как было получено итоговое значение.
Функция GROUPING
использует в качестве своего аргумента единственный столбец. Аргумент выраж в функции GROUPING
должен соответствовать одному из выражений в предложении GROUP BY
. Эта функция возвращает значение 0
или 1
.
Значения, возвращаемые функцией GROUPING
, полезны для выполнения следующих действий:
-
определение уровня агрегирования данного промежуточного итога (т. е. группы или групп, используемых для его получения);
-
определение, представляет ли собой значение
NULL
в столбце выражения строки набора результатов:-
значение
NULL
из базовой таблицы (хранящееся значениеNULL
); -
значение
NULL
, созданное операциейROLLUP
илиCUBE
(в результате применения групповой функции к этому выражению).
-
Значение 0
, возвращаемое функцией GROUPING
, примененной к выражению, является признаком одного из следующих вариантов:
-
Выражение использовалось для расчета агрегированного значения.
-
Значение
NULL
в столбце выражения является хранящимся значениемNULL
.
Значение 1
, возвращаемое функцией GROUPING
, примененной к выражению, является признаком одного из следующих вариантов:
-
Выражение не использовалось для расчета агрегированного значения.
-
Значение
NULL
в столбце выражения создано операциейROLLUP
илиCUBE
как результат группирования.
Далее: Инструкции SQL в SQL*Plus