GROUPING (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Microsoft Fabric 中的 SQL 分析端點 Microsoft Fabric 中的倉儲
指出是否彙總 GROUP BY 清單中指定的資料行運算式。 GROUPING 傳回 1 時,表示會在結果集中彙總,傳回 0 則不會。 當指定 GROUP BY 時,GROUPING 只能在 SELECT <select> 清單、HAVING 和 ORDER BY 子句中使用。
語法
GROUPING ( <column_expression> )
引數
<column_expression>
為包含 GROUP BY 子句中資料行的資料行或運算式。
傳回型別
tinyint
備註
GROUPING 是用來區別 ROLLUP、CUBE 或 GROUPING SETS 傳回的 null 值與標準 null 值。 因 ROLLUP、CUBE 或 GROUPING SETS 運算之結果而傳回的 NULL 是 NULL 的特殊使用。 這用來作為結果集中的資料行預留位置,代表全部。
範例
下列範例會群組 SalesQuota
和匯總 SaleYTD
AdventureWorks2022 資料庫中的金額。 GROUPING
函數套用在 SalesQuota
資料行上。
SELECT SalesQuota, SUM(SalesYTD) 'TotalSalesYTD', GROUPING(SalesQuota) AS 'Grouping'
FROM Sales.SalesPerson
GROUP BY SalesQuota WITH ROLLUP;
GO
結果集在 SalesQuota
之下顯示兩個 Null 值。 第一個 NULL
代表資料表中這個資料行的 Null 值群組。 第二個 NULL
位在 ROLLUP 作業所加入的摘要資料列中。 摘要資料列會顯示所有 SalesQuota
群組的 TotalSalesYTD
數量,由 Grouping
資料行中的 1
來表示。
結果集如下所示。
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)