MariaDB ROLLUP 사용법: 부분 합계와 총계 생성하기
MariaDB에서는 데이터를 그룹화하여 부분 합계와 총계를 생성할 수 있는 ROLLUP 키워드를 제공합니다. 이 글에서는 ROLLUP 키워드의 사용법을 예제와 함께 설명합니다.
ROLLUP 키워드 소개
ROLLUP 키워드는 GROUP BY 절과 함께 사용되어, 지정된 열들에 대해 부분 합계와 총계를 생성합니다. 이는 다양한 수준의 집계를 한 번에 수행하여 보고서 작성과 데이터 분석을 단순화합니다.
ROLLUP 기본 사용법
ROLLUP의 기본 구문은 다음과 같습니다.
SELECT column1, column2, ..., aggregate_function(column)
FROM table
GROUP BY column1, column2, ... WITH ROLLUP;ROLLUP을 사용한 집계 예제
다음 예제에서는 sales 테이블을 사용하여 카테고리와 제품별로 판매량 합계를 계산하고, 카테고리별 및 전체 합계를 포함한 결과를 생성합니다.
테이블 생성 및 샘플 데이터 삽입
-- 데이터베이스 생성 (테스트 목적으로)
CREATE DATABASE IF NOT EXISTS test_db;
USE test_db;
-- sales 테이블 생성
CREATE TABLE sales (
id INT AUTO_INCREMENT PRIMARY KEY,
product_name VARCHAR(50),
category VARCHAR(50),
quantity INT,
price DECIMAL(10, 2),
sale_date DATE
);
-- 샘플 데이터 삽입
INSERT INTO sales (product_name, category, quantity, price, sale_date) VALUES
('Laptop', 'Electronics', 2, 1200.00, '2024-05-01'),
('Mouse', 'Electronics', 5, 25.00, '2024-05-01'),
('Keyboard', 'Electronics', 3, 45.00, '2024-05-02'),
('Monitor', 'Electronics', 2, 300.00, '2024-05-03'),
('Desk', 'Furniture', 1, 150.00, '2024-05-01'),
('Chair', 'Furniture', 4, 85.00, '2024-05-02'),
('Lamp', 'Furniture', 6, 20.00, '2024-05-03'),
('Notebook', 'Stationery', 10, 2.50, '2024-05-01'),
('Pen', 'Stationery', 20, 1.20, '2024-05-02'),
('Pencil', 'Stationery', 15, 0.80, '2024-05-03');ROLLUP을 사용한 쿼리
다음 쿼리는 각 카테고리와 제품별로 판매량을 집계하고, 카테고리별 합계 및 전체 합계를 제공합니다.
-- 카테고리와 제품별로 판매량 합계를 계산하고, 카테고리별 및 전체 합계를 포함
SELECT category, product_name, SUM(quantity) AS total_quantity
FROM sales
GROUP BY category, product_name WITH ROLLUP;
ROLLUP과 GROUP BY의 차이점 및 주의사항
GROUP BY는 지정된 열을 기준으로 데이터를 그룹화하지만, ROLLUP은 이러한 그룹에 대해 추가적인 집계 수준을 생성합니다. ROLLUP을 사용할 때 결과에는 부분 합계와 총계가 포함됩니다.
활용 예제 및 실전 응용
실제 비즈니스 시나리오에서 ROLLUP을 사용하여 매출 데이터의 다양한 집계 수준을 쉽게 생성할 수 있습니다. 예를 들어, 월별, 분기별, 연도별 매출 보고서를 단일 쿼리로 생성할 수 있습니다.
참고할 만한 사이트
더 자세한 내용은 다음 사이트들을 참고하세요.
관련 이전 게시글
- MariaDB 데이터 그룹화: GROUP BY 절 사용법
- MariaDB 집계 함수 사용법: COUNT, SUM, AVG, MAX, MIN
- MariaDB SELECT 문 사용법 및 DISTINCT 중복 제거
- MariaDB LIMIT 및 OFFSET 사용법: 데이터 개수 제한
- MariaDB 조건부 집계: HAVING 절 사용법
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
