"Cube" 및 "Rollup"은 SQL 쿼리 언어에서 다차원 데이터 큐브를 생성하고 데이터를 롤업(요약)하는 데 사용되는 명령어입니다. 다음은 "Cube" 및 "Rollup" 명령어의 예시를 작성하겠습니다.
먼저, 다음과 같은 예시 데이터베이스 테이블을 가정합니다:
테이블 이름: sales
yearquarterproductrevenue
2022 | Q1 | Product A | 1000 |
2022 | Q1 | Product B | 1500 |
2022 | Q2 | Product A | 1200 |
2022 | Q2 | Product B | 1600 |
Cube 예시:
"Cube" 명령어는 다차원 데이터 큐브를 생성합니다. 다음 쿼리는 연도(year), 분기(quarter), 및 제품(product)에 대한 큐브를 생성합니다.
이 쿼리는 다음과 같은 결과를 생성합니다:
yearquarterproductrevenue
2022 | Q1 | Product A | 1000 |
2022 | Q1 | Product B | 1500 |
2022 | Q1 | NULL | 2500 |
2022 | Q2 | Product A | 1200 |
2022 | Q2 | Product B | 1600 |
2022 | Q2 | NULL | 2800 |
2022 | NULL | NULL | 5300 |
NULL | Q1 | NULL | 2500 |
NULL | Q2 | NULL | 2800 |
NULL | NULL | NULL | 5300 |
결과에는 각 연도, 분기 및 제품에 대한 매출의 합계가 표시됩니다. NULL 값은 해당 차원의 모든 값을 나타냅니다.
Rollup 예시:
"Rollup" 명령어는 데이터를 요약(롤업)하는 데 사용됩니다. 다음 쿼리는 연도(year) 및 분기(quarter)에 대한 롤업을 생성합니다.
이 쿼리는 다음과 같은 결과를 생성합니다:
yearquarterrevenue
2022 | Q1 | 2500 |
2022 | Q2 | 2800 |
2022 | NULL | 5300 |
NULL | NULL | 5300 |
결과에는 각 연도 및 분기에 대한 매출의 합계가 표시됩니다. NULL 값은 해당 차원의 모든 값을 나타냅니다. "Rollup"을 사용하면 데이터를 하위 수준에서 상위 수준으로 요약할 수 있습니다.
만일
"SELECT year, quarter, product, SUM(revenue) FROM sales GROUP BY ROLLUP(year, quarter, product);" 쿼리는 "year," "quarter," 및 "product"에 대한 롤업을 생성하므로, 다음과 같은 결과를 얻을 것입니다:
결과에는 각 연도, 분기 및 제품에 대한 매출의 합계가 표시됩니다. NULL 값은 해당 차원의 모든 값을 나타냅니다. "Rollup"을 사용하면 데이터를 하위 수준에서 상위 수준으로 요약할 수 있으므로 각 차원 수준에서 총 매출을 확인할 수 있습니다.
'컴퓨터 과학 > 데이터베이스' 카테고리의 다른 글
Mapper 와 Reducer (0) | 2023.10.05 |
---|---|
OLAP Aggregation (0) | 2023.10.05 |
OLTP와 OLAP (1) | 2023.10.03 |
Star Schema와 SnowFlake Schema (HackerRank - Database) (0) | 2023.10.03 |
OLAP operation (HackerRank - Database) (0) | 2023.10.03 |