적용 대상: SQL Server(지원되는 모든 버전) Azure SQL Database
그룹 수준을 계산하는 함수입니다. GROUP BY 절이 지정된 경우 GROUPING_ID는 SELECT <select> 목록, HAVING 및 ORDER BY 절에만 사용할 수 있습니다.
GROUPING_ID ( <column_expression>[ ,...n ] )
<column_expression>
GROUP BY 절의 column_expression입니다.
int
GROUPING_ID <column_expression>은 GROUP BY 목록의 식과 정확하게 일치해야 합니다. 예를 들어 DATEPART (yyyy, <column name>)를 기준으로 그룹화하는 경우에는 GROUPING_ID (DATEPART (yyyy, <column name>))를 사용하고, <column name>를 기준으로 그룹화하는 경우에는 GROUPING_ID (<column name>)를 사용하세요.
GROUPING_ID (<column_expression> [ , ...n ])는 각 출력 행의 열 목록에 있는 각 열에 대해 반환되는 동등 함수인 GROUPING (<column_expression>)을 0과 1로 구성된 문자열로 입력합니다. GROUPING_ID는 문자열을 밑이 2인 숫자로 해석하고 그에 해당하는 정수를 반환합니다. 예를 들어 다음 문을 살펴보세요: SELECT a, b, c, SUM(d),``GROUPING_ID(a,b,c)``FROM T GROUP BY <group by list>. 다음 표에서는 GROUPING_ID () 입력 및 출력 값을 보여 줍니다.
GROUPING_ID ()와 GROUPING () 비교집계된 열GROUPING_ID (a, b, c) 입력 = GROUPING(a) + GROUPING(b) + GROUPING(c)GROUPING_ID () 출력
a | 100 | 4 |
b | 010 | 2 |
c | 001 | 1 |
ab | 110 | 6 |
ac | 101 | 5 |
bc | 011 | 3 |
abc | 111 | 7 |
각 GROUPING_ID 인수는 GROUP BY 목록의 요소여야 합니다. GROUPING_ID ()는 최하위 N 비트가 lit인 integer 비트맵을 반환합니다. lit bit는 해당 인수가 지정된 출력 행에 대해 그룹화 열이 아님을 나타냅니다. 최하위 bit는 인수 N에 해당하고 N-1번째 최하위 bit는 인수 1에 해당합니다.
단일 그룹화 쿼리의 경우 GROUPING (<column_expression>)은 GROUPING_ID (<column_expression>)와 같으며 둘 다 0을 반환합니다.
다음 예에서는 AdventureWorks2012 데이터베이스에서 Name과 Title, Name, 및 Company Total별 직원 수를 반환합니다. GROUPING_ID()는 Title 열의 각 행에 대해 집계 수준을 식별하는 값을 생성합니다.
간단한 예
다음 예제에서 title별 직원 수를 갖는 행만 반환하려면 AdventureWorks2012 데이터베이스의 HAVING GROUPING_ID(D.Name, E.JobTitle); = 0에서 주석 문자를 제거하세요. department별 직원 수를 갖는 행만 반환하려면 HAVING GROUPING_ID(D.Name, E.JobTitle) = 1;에서 주석 문자를 제거하세요.
집계 데이터 처리시, 가끔 사용하는 구문...
댓글 영역