728x90
반응형
ROLLUP은 SQL에서 여러 수준의 집계(소계와 총계)를 생성하는 데 사용되는 그룹핑 옵션입니다.
이를 사용하여 데이터의 그룹별 합계는 물론, 전체 총계도 함께 조회할 수 있습니다.
아래는 ROLLUP을 사용하는 방법과 예시입니다.
기본 구문
SELECT column1, column2, ..., AGGREGATE_FUNCTION(column)
FROM table_name
GROUP BY ROLLUP(column1, column2, ...);
예시 1: 단일 컬럼에서 ROLLUP 사용
예를 들어 Sales 테이블이 있고, 각 region별로 총 sales_amount를 구하면서 전체 총계도 계산하려면 ROLLUP을 사용하여 처리할 수 있습니다.
SELECT region, SUM(sales_amount) AS total_sales
FROM Sales
GROUP BY ROLLUP(region);
결과 예시:
region | total_sales |
North | 10000 |
South | 15000 |
East | 12000 |
West | 13000 |
NULL | 50000 |
- NULL 값은 전체 합계를 나타냅니다.
예시 2: 다중 컬럼에서 ROLLUP 사용
ROLLUP을 다중 컬럼으로 사용할 경우, 첫 번째 컬럼별 소계, 두 번째 컬럼별 소계, 그리고 최종 총계를 제공합니다.
예를 들어, region과 product별로 sales_amount 합계를 구하는 경우:
쿼리:
SELECT region, product, SUM(sales_amount) AS total_sales
FROM Sales
GROUP BY ROLLUP(region, product);
결과 예시:
region | product | total_sales |
North | A | 5000 |
North | B | 5000 |
North | NULL | 10000 |
South | A | 8000 |
South | B | 7000 |
South | NULL | 15000 |
NULL | NULL | 25000 |
- 각 region 내 product별로 합계가 계산됩니다.
- product가 NULL인 행은 해당 region의 소계를 나타냅니다.
- region과 product 모두 NULL인 마지막 행은 전체 총계를 의미합니다.
예시 3: ROLLUP과 여러 집계 함수 사용
SUM, AVG, COUNT 같은 여러 집계 함수를 조합하여 사용하면 다양한 계산 결과를 볼 수 있습니다.
쿼리:
SELECT region, product, SUM(sales_amount) AS total_sales, AVG(sales_amount) AS avg_sales
FROM Sales
GROUP BY ROLLUP(region, product);
- 이 쿼리는 각 region과 product별로 sales_amount의 총합과 평균을 계산합니다.
- ROLLUP으로 계층적 집계를 생성하여, 모든 수준에서 소계와 총계가 표시됩니다.
요약
- ROLLUP은 그룹화된 데이터에서 각 그룹별 소계와 총계를 구하는 데 유용합니다.
- 단일 및 다중 컬럼에서 모두 사용할 수 있으며, 데이터를 계층적으로 요약할 수 있습니다.
- 일반적인 구문: GROUP BY ROLLUP(column1, column2, ...)
728x90
반응형
'IT > DB' 카테고리의 다른 글
데이터베이스 SQL 조건절 where 1=1 뜻 (0) | 2024.11.05 |
---|---|
데이터베이스 SQL 서브쿼리 EXIST 함수 사용 (1) | 2024.11.03 |
select 1 from 테이블 쿼리 사용하는 방법 (0) | 2024.11.02 |
데이터베이스 쿼리 범위 조회 LIMIT절 (feat.Cubrid 큐브리드) (0) | 2024.11.02 |
SQL쿼리 group by a 와 group by a,b,c 차이 (1) | 2024.10.21 |