共用方式為


分組(Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉庫Microsoft Fabric 中的 SQL 資料庫

指出是否彙總 GROUP BY 清單中指定的資料行運算式。 GROUPING 傳回 1 時,表示會在結果集中彙總,傳回 0 則不會。 當指定 GROUP BY 時,GROUPING 只能在 SELECT <select> 清單、HAVING 和 ORDER BY 子句中使用。

Transact-SQL 語法慣例

語法

GROUPING ( <column_expression> )  

引數

<column_expression>
為包含 GROUP BY 子句中資料行的資料行或運算式。

傳回型別

tinyint

備註

GROUPING 是用來區別 ROLLUP、CUBE 或 GROUPING SETS 傳回的 null 值與標準 null 值。 因 ROLLUP、CUBE 或 GROUPING SETS 運算之結果而傳回的 NULL 是 NULL 的特殊使用。 這用來作為結果集中的資料行預留位置,代表全部。

範例

以下範例將 AdventureWorks2025 資料庫中的金額分組 SalesQuota 並彙總 SaleYTDGROUPING 函數套用在 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 作業所加入的摘要資料列中。 摘要資料列會顯示所有 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)

另請參閱

GROUPING_ID(Transact-SQL)
按(Transact-SQL) 群組