티스토리 뷰
1. ROLLUP,CUBE - 역할
ROLLUP - 그룹별 합계 정보를 추가
CUBE - 모든 가능한 조합에 대한 합계 정보를 추가
2. ROLLUP,CUBE - 기본 테이블
◈ TEST_TABLE_ONE
NAME | AMT | DEPT |
테스트1 | 1000 | test_d1 |
테스트2 | 1000 | test_d1 |
테스트3 | 3000 |
|
테스트4 | 2000 | test_d2 |
테스트5 | 2000 | test_d2 |
3. ROLLUP - SQL 문장
1 2 3 4 5 6 7 | SELECT DEPT ,NAME ,COUNT(*) AS CNT ,SUM(AMT) AS SUM_AMT FROM TEST_TABLE_ONE GROUP BY ROLLUP(DEPT,NAME) ORDER BY DEPT |
◈ 결과 테이블
DEPT | NAME | CNT | SUM_AMT |
test_d1 | 테스트1 | 1 | 1000 |
test_d1 | 테스트2 | 1 | 1000 |
test_d1 |
| 2 | 2000 |
test_d2 | 테스트3 | 1 | 2000 |
test_d2 | 테스트4 | 1 | 2000 |
test_d2 |
| 2 | 4000 |
| 테스트5 | 1 | 3000 |
|
| 1 | 3000 |
|
| 5 | 9000 |
◈ 설명
현재 결과 테이블을 보게 된다면 이 부분은 각각의 DEPT,NAME 에대한 소계값을 보여준 부분이고,
이 부분은 전체 정보에 대한 소계값을 보여주는 부분입니다
4. CUBE - SQL 문장
1 2 3 4 5 6 7 | SELECT DEPT ,NAME ,COUNT(*) AS CNT ,SUM(AMT) AS SUM_AMT FROM TEST_TABLE_ONE GROUP BY CUBE(DEPT,NAME) ORDER BY DEPT |
◈ 결과 테이블
DEPT | NAME | CNT | SUM_AMT |
test_d1 | 테스트1 | 1 | 1000 |
test_d1 | 테스트2 | 1 | 1000 |
test_d1 |
| 2 | 2000 |
test_d2 | 테스트3 | 1 | 2000 |
test_d2 | 테스트4 | 1 | 2000 |
test_d2 |
| 2 | 4000 |
| 테스트1 | 1 | 1000 |
| 테스트2 | 1 | 1000 |
| 테스트3 | 1 | 2000 |
| 테스트4 | 1 | 2000 |
| 테스트5 | 1 | 3000 |
| 테스트5 | 1 | 3000 |
|
| 1 | 3000 |
|
| 5 | 9000 |
◈ 설명
현재 결과 테이블을 보게 된다면 ROLLUP 보다 많은 결과를 보여줍니다
CUBE는 모든 가능한 조합에 대한 합계 정보를 추출하기 때문에 ROLLUP보다 많은 결과를 보여주게 됩니다
'[개발]프로그래밍 > sql' 카테고리의 다른 글
[oracle] INTERSECT - 공통된 데이터를 표시(교집합) (0) | 2016.10.12 |
---|---|
[oracle] UNION , UNION ALL - 모든 데이터들을 표현(합집합) (0) | 2016.10.12 |
[oracle] HAVING 절 - GROUP BY에서 사용되는 집계함수 조건 (2) | 2016.10.10 |
[oracle] GROUP BY - 그룹핑을 활용한 데이터 추출 (0) | 2016.10.06 |
[oracle] MIN , MAX - 최소값과 최대값 (0) | 2016.10.06 |
- Total
- Today
- Yesterday