GROUPING(Transact-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입니다. 이것은 결과 집합에서 열 자리 표시자로 사용되며 "모두"를 의미합니다.

다음 예에서는 SalesQuota를 그룹화하고 SaleYTD 금액을 집계합니다. GROUPING 함수는 SalesQuota 열에 적용됩니다.

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

결과 집합에는 SalesQuota 아래 2개의 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)