В этой рубрике было рассмотрено, как могут использоваться различные операции по группировке связанных данных.
операция
ROLLUP
для создания значений промежуточных итогов;операция
CUBE
для создания значений перекрестных таблиц;функция
GROUPING
для идентификации значений строк, созданных операциейROLLUP
илиCUBE
;синтаксис
GROUPING SETS
для определения нескольких группирований в одном и том же запросе;
предложение
GROUP BY
для объединения выражений различными способами:составные столбцы;
сцепленные наборы группирований.
ROLLUP
иCUBE
являются расширениями предложенияGROUP BY
.ROLLUP
используется для вывода значений промежуточных итогов и общих итогов.CUBE
используется для вывода значений перекрестных таблиц.Функция
GROUPING
позволяет определить, является ли строка агрегатом, созданным операторомCUBE
илиROLLUP
.Синтаксис
GROUPING SETS
позволяет определить несколько группирований в одном и том же запросе. ПредложениеGROUP BY
вычисляет все заданные группирования и объединяет их с помощьюUNION ALL
.
Предложение
GROUP BY
позволяет объединять выражения различными способами:Чтобы задать составные столбцы, нужно сгруппировать столбцы с помощью скобок, чтобы сервер Oracle рассматривал их как один блок для операций
ROLLUP
илиCUBE
.Чтобы задать наборы сцепленных группирований, нужно разделить несколько наборов группирований, операции
ROLLUP
иCUBE
запятыми, указывая серверу Oracle объединить их в одно предложениеGROUP BY
. Результатом является декартово произведение группирований из каждого набора группирований.