프로그래밍 숲

SQL GROUPING 쉽게 이해해보기! 본문

프로그래밍_인포/데이터베이스&SQL

SQL GROUPING 쉽게 이해해보기!

jjscript 2023. 6. 10. 09:13
728x90
반응형

GROUPING이란?

SQL에서 GROUP BY는 데이터를 특정 열 또는 열 그룹에 따라 그룹화하는 데 사용되는 문장입니다. 그룹화 기능은 그룹별로 요약 통계를 제공하는 데 유용합니다.

다만, GROUPING이라는 기능은 GROUP BY와 함께 사용되는 특수한 함수로, 이는 SQL Server, Oracle 등 일부 DBMS에서 지원합니다. GROUPING 함수는 GROUP BY 절에 ROLLUP 또는 CUBE를 함께 사용하여 데이터를 그룹화할 때 사용됩니다. 이 함수는 슈퍼 총계 행(즉, ROLLUP 또는 CUBE 연산의 결과)인지 아닌지를 판별합니다. 슈퍼 총계 행이면 GROUPING 함수는 1을 반환하고, 그렇지 않으면 0을 반환합니다.

GROUPING 예시

각 고객별로 주문한 총 상품 수량을 그룹화하고, 모든 고객의 총 수량을 추가로 제공하는 예시로 GROUPING을 설명해 보도록 하겠습니다.

SELECT 
  CustomerID,
  SUM(Quantity) as TotalQuantity,
  GROUPING(CustomerID) as IsSuperTotal
FROM 
  Orders
GROUP BY 
  CustomerID WITH ROLLUP

위의 쿼리의 결과는 다음과 같습니다.

| CustomerID | TotalQuantity | IsSuperTotal |
|------------|---------------|--------------|
| 1          | 100           | 0            |
| 2          | 200           | 0            |
| 3          | 300           | 0            |
| NULL       | 600           | 1            |

결과에서 볼 수 있듯이, CustomerID가 NULL인 행은 모든 고객의 총계 행입니다. GROUPING 함수는 이 행이 슈퍼 총계 행임을 나타내기 위해 1을 반환합니다. 이는 이 행이 WITH ROLLUP에 의해 생성되었음을 나타냅니다. 그 외의 행에서는 0을 반환합니다. 이것이 바로 GROUPING 함수의 기본 사용법입니다.

728x90
반응형
Comments