일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- simple case expression
- 뷰
- 정보처리기사
- window 함수
- dom
- Node.js
- coalesce
- 기업 협업
- sql 저장 모듈
- 정규식 연산
- 비절차적 데이터 조작어
- git
- 위코드
- list multiplication
- MYSQL
- SQLD
- ROLLUP
- execute immediate
- 자료구조
- 코드 스니펫
- searched case expression
- JavaScript
- Oracle
- 문법 차이
- html
- dense rank
- SQL
- GROUPING
- show graph characteristics
- python
- Today
- Total
프로그래밍 숲
SQL CUBE 그룹함수 쉽게 이해하기! 본문
큐브 그룹 함수(Cube Group Function)는 SQL에서 사용되는 집계 함수 중 하나입니다. 이 함수는 다차원 데이터를 다양한 방식으로 집계하는 데 사용됩니다. 큐브 그룹 함수를 사용하면 여러 열의 조합에 따라 다차원 데이터를 집계할 수 있으며, 결과는 각 조합에 대한 집계 값의 조합으로 표시됩니다.
큐브 함수 이름의 유래
"CUBE"라는 이름의 큐브 그룹 함수는 그룹화된 데이터를 다차원으로 분석하는 개념에서 유래했습니다. 이 함수는 다차원 큐브(Cube)와 유사한 방식으로 데이터를 집계합니다.
큐브(Cube)는 다차원 데이터를 나타내는 개념으로, 각 차원의 값에 따라 데이터를 조합하여 분석할 수 있는 구조입니다. 큐브는 세 개 이상의 차원을 가질 수 있으며, 각 차원은 특정 속성이나 카테고리를 나타냅니다. 큐브는 각 차원의 값에 따른 집계 결과를 저장하고, 다양한 방식으로 데이터를 분석하고 탐색할 수 있게 해줍니다.
SQL의 "CUBE" 함수는 이러한 큐브 개념과 유사하게 작동합니다. 그룹화된 데이터를 다차원으로 분석하고, 각 차원의 값에 따른 집계 결과를 반환합니다. 이렇게 큐브 그룹 함수는 그룹화된 데이터를 큐브의 형태로 처리하는 개념을 반영하여 "CUBE"라는 이름을 가지게 되었습니다.
큐브 함수 예시
간단한 예를 통해 큐브 그룹 함수를 설명해보겠습니다. 예를 들어, 고객 주문 데이터가 다음과 같은 "주문(Order)" 테이블에 저장되어 있다고 가정해봅시다.
Order (테이블)
+----------+---------+---------+
| Customer | Product | Amount |
+----------+---------+---------+
| John | Apple | 10 |
| John | Orange | 5 |
| Mary | Apple | 7 |
| Mary | Orange | 3 |
+----------+---------+---------+
이 테이블에서 큐브 그룹 함수를 사용하여 고객(Customer)과 제품(Product)에 따른 총 판매량(Amount)을 집계해보겠습니다. 큐브 그룹 함수를 사용하기 위해서는 GROUP BY 구문과 함께 큐브 함수를 사용해야 합니다.
SELECT Customer, Product, SUM(Amount)
FROM Order
GROUP BY CUBE (Customer, Product);
위의 SQL 쿼리를 실행하면 다음과 같은 결과를 얻을 수 있습니다
+----------+---------+-----------+
| Customer | Product | SUM(Amount)|
+----------+---------+-----------+
| John | Apple | 10 |
| John | Orange | 5 |
| John | NULL | 15 |
| Mary | Apple | 7 |
| Mary | Orange | 3 |
| Mary | NULL | 10 |
| NULL | Apple | 17 |
| NULL | Orange | 8 |
| NULL | NULL | 25 |
+----------+---------+-----------+
위의 결과를 보면, 각 고객과 제품에 대한 총 판매량이 표시됩니다. 그리고 NULL 값은 해당 열을 고려하지 않고 전체 데이터에 대한 집계 결과를 보여줍니다. 예를 들어, "John, NULL" 행은 John 고객에 대한 모든 제품의 총 판매량을 보여줍니다. 마지막으로 "NULL, NULL" 행은 전체 데이터에 대한 총 판매량을 나타냅니다.
이와 같이 큐브 그룹 함수를 사용하면 다차원 데이터를 다양한 방식으로 집계할 수 있으며, 다양한 조합에 따른 집계 결과를 한 번에 확인할 수 있습니다.
만약 모든 Grouping Columns의 경우에 대해 Subtotal을 생성해야 하는 상황이라면 CUBE를 사용하는 것이 유용할 수 있습니다. 그러나 ROLLUP에 비해 CUBE는 시스템에 부담을 주는 경우가 있으므로 사용 시 주의가 필요합니다.
'프로그래밍_인포 > 데이터베이스&SQL' 카테고리의 다른 글
SQL 윈도우 함수 한눈에 알아보기 Rank(), Dense Rank(), Row_Number() (0) | 2023.06.13 |
---|---|
SQL GROUPING 쉽게 이해해보기! (0) | 2023.06.10 |
SQL ROLLUP 연산자 쉽게 이해하기 (0) | 2023.06.08 |
뷰 생성 스크립트 쉽게 이해하기 (0) | 2023.06.07 |
SQL 뷰 매우 쉽게 이해하기 (0) | 2023.06.07 |