Поделиться через


GROUPING (Transact-SQL)

Указывает, является ли указанное выражение столбца в списке GROUP BY статистическим или нет. В результирующем наборе функция GROUPING возвращает 1 (статистическое выражение) или ноль (нестатистическое выражение). Функция GROUPING может использоваться только в предложениях SELECT <список выбора>, HAVING и ORDER BY, если указано предложение GROUP BY.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

GROUPING ( <column_expression> )

Аргументы

  • <column_expression>
    Столбец или выражение, которое содержит столбец в предложении GROUP BY.

Типы возвращаемых данных

tinyint

Замечания

GROUPING используется, чтобы различать значения NULL, возвращаемые операторами ROLLUP, CUBE или GROUPING SETS, и стандартные значения NULL. Возвращение NULL в качестве результата операции ROLLUP, CUBE или GROUPING SETS является особым случаем использования NULL. Значение служит заполнителем столбца в результирующем наборе и означает «все».

Примеры

В следующем примере производится группирование SalesQuota и статистическая обработка сумм SaleYTD. Функция GROUPING применяется к столбцу SalesQuota.

USE AdventureWorks2008R2;
GO
SELECT SalesQuota, SUM(SalesYTD) 'TotalSalesYTD', GROUPING(SalesQuota) AS 'Grouping'
FROM Sales.SalesPerson
GROUP BY SalesQuota WITH ROLLUP;
GO

В результирующем наборе показаны два значения NULL в SalesQuota. Первый NULL представляет группу значений NULL из этого столбца в таблице. Второй NULL находится в строке итогов, добавленной операцией ROLLUP. Сводная строка показывает суммы TotalSalesYTD для всех групп SalesQuota и обозначается 1 в столбце Grouping.

Ниже приводится результирующий набор.

SalesQuota TotalSalesYTD Grouping

--------- ------------- --------

NULL 1533087,5999 0

250000.00 33461260.59 0

300000.00 9299677.9445 0

NULL 44294026,1344 1

(Обработано строк: 4)