GROUPING (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечную точку аналитики SQL Azure Synapse Analytics в хранилище Microsoft Fabric в Microsoft Fabric
Указывает, является ли указанное выражение столбца в списке GROUP BY статистическим или нет. В результирующем наборе функция GROUPING возвращает 1 (статистическое выражение) или ноль (нестатистическое выражение). Функция GROUPING может использоваться только в предложениях SELECT <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
в базе данных AdventureWorks2022. Функция GROUPING
применяется к столбцу SalesQuota
.
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 row(s) affected)