일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- SQL
- 정보처리기사
- 코드 스니펫
- JavaScript
- python
- searched case expression
- git
- 자료구조
- dense rank
- 비절차적 데이터 조작어
- simple case expression
- 기업 협업
- execute immediate
- coalesce
- 뷰
- 위코드
- sql 저장 모듈
- 정규식 연산
- 문법 차이
- dom
- window 함수
- Node.js
- show graph characteristics
- html
- list multiplication
- Oracle
- GROUPING
- SQLD
- ROLLUP
- MYSQL
- Today
- Total
프로그래밍 숲
SQL ROLLUP 연산자 쉽게 이해하기 본문
SQL의 ROLLUP 연산자는 GROUP BY 절과 함께 사용되며, 이를 통해 여러 차원에 대한 합계, 평균, 카운트 등의 데이터 집계가 가능합니다. 간단히 말하면, ROLLUP은 결과 집합의 하위 집합을 생성하고 추가적인 행을 추가하여 이 집합의 합계 또는 다른 집계를 제공합니다
ROLLUP 이름의 의미
"롤업(roll up)"이란 이름은 마치 이러한 계층적 구조를 "롤업"하는 것처럼 생각할 수 있습니다.
ROLLUP은 명시된 그룹화 컬럼의 순서에 따라 작동하며, 이를 통해 다른 수준의 집계 데이터를 제공합니다. 가장 세부적인 수준에서 시작하여 가장 일반적인 수준까지 집계 데이터를 "롤업"하는 것을 나타냅니다.
또한, 이 연산자의 이름은 계층적인 구조를 이루는 데이터를 다루는 방식을 비유적으로 설명하기도 합니다. 가장 하위 수준의 세부 정보를 취합하여 상위 수준의 요약 정보를 생성하는 과정이 마치 캐바스 혹은 블라인드를 롤업하는 것처럼 보일 수 있습니다.
이처럼, ROLLUP이라는 이름은 이 연산자의 기능을 잘 반영하고 있습니다.
ROLLUP 예시
더욱 쉽게 이해하기 위해 예시를 들어 설명해 보도록 하겠습니다.
먼저, 테이블의 구조와 데이터가 다음과 같다고 가정해보겠습니다.
CREATE TABLE Sales (
Year INT,
Month INT,
Amount INT
);
INSERT INTO Sales VALUES
(2022, 1, 100),
(2022, 2, 150),
(2022, 3, 120),
(2023, 1, 200),
(2023, 2, 220),
(2023, 3, 250);
여기서 우리는 연도별, 월별 매출액의 합계를 구하고자 합니다. 이때 ROLLUP을 사용하면 다음과 같이 쿼리를 작성할 수 있습니다:
SELECT Year, Month, SUM(Amount)
FROM Sales
GROUP BY Year, Month WITH ROLLUP;
이 쿼리의 결과는 다음과 같습니다.
Year | Month | SUM(Amount)
---------------------------
2022 | 1 | 100
2022 | 2 | 150
2022 | 3 | 120
2022 | NULL | 370 -- 2022년의 합계
2023 | 1 | 200
2023 | 2 | 220
2023 | 3 | 250
2023 | NULL | 670 -- 2023년의 합계
NULL | NULL | 1040 -- 전체 합계
즉, ROLLUP을 사용하면 연도별, 월별 합계 뿐만 아니라 전체 합계까지 한 번에 계산할 수 있습니다. 위에서 NULL은 합계를 나타냅니다.
이처럼 ROLLUP은 매우 유용한 집계 도구입니다. 다만, 결과 해석에 주의해야 하며 NULL 값의 의미를 이해해야 합니다. 이 NULL은 "모든"이라는 의미로 볼 수 있습니다.
'프로그래밍_인포 > 데이터베이스&SQL' 카테고리의 다른 글
SQL GROUPING 쉽게 이해해보기! (0) | 2023.06.10 |
---|---|
SQL CUBE 그룹함수 쉽게 이해하기! (0) | 2023.06.09 |
뷰 생성 스크립트 쉽게 이해하기 (0) | 2023.06.07 |
SQL 뷰 매우 쉽게 이해하기 (0) | 2023.06.07 |
SQL HAVING절 예시로 알아보기 (0) | 2023.06.06 |