SQL의 ROLLUP은 데이터를 그룹화하고 집계하는데 사용되는 기능 중 하나입니다.
ROLLUP을 사용하면 여러 수준의 합계를 한 번에 계산할 수 있습니다.
예를 들어, 여러 열에 대한 총합 및 부분 합계를 계산할 때 유용합니다.
간단한 예제로 ROLLUP을 설명해보겠습니다.
우선, 고객별로 판매 금액을 추적하는 데이터베이스가 있다고 가정해봅시다. 이 데이터베이스에는 '고객', '제품', '판매금액'과 같은 열이 있을 것입니다.
SELECT
customer,
product,
SUM(sales_amount) as total_sales
FROM
sales
GROUP BY
ROLLUP (customer, product);
위의 SQL 쿼리는 고객 및 제품별 판매 금액의 합계를 계산합니다. ROLLUP 절을 사용하여 여러 레벨의 합계를 한 번에 얻을 수 있습니다.
예를 들어, 다음과 같은 데이터가 있다고 가정해봅시다:
| customer | product | sales_amount |
|----------|---------|--------------|
| John | A | 100 |
| John | B | 200 |
| Jane | A | 150 |
| Jane | B | 250 |
위의 쿼리를 실행하면 다음과 같은 결과가 나올 것입니다:
| customer | product | total_sales |
|----------|---------|-------------|
| John | A | 100 |
| John | B | 200 |
| John | NULL | 300 | <- John의 판매 합계
| Jane | A | 150 |
| Jane | B | 250 |
| Jane | NULL | 400 | <- Jane의 판매 합계
| NULL | NULL | 700 | <- John, Jane의 총 판매 합계
위 결과에서, 'NULL' 값은 해당 열의 전체 합계를 나타냅니다.
즉, ROLLUP을 사용하면 여러 레벨의 합계를 한 번에 계산할 수 있어서 데이터를 더 쉽게 요약하고 분석할 수 있게 됩니다.