ROLLUP(a, b, c) | GROUPING SETS((a, b, c), (a, b), (a), ()) |
CUBE(a, b, c) | GROUPING SETS((a, b, c), (a, b), (a,c), (b,c), (a), (b), (c), ()) |
Default는...
Rollup은...
가장 간단하게 그룹화된 결과값을 출렵합니다.
그룹화한 조건에 의해 추가적인 것 없이 출력됩니다.
SELECT 컬럼_이름, 계산식, 함수 등
FROM 테이블[, 테이블, 서브쿼리, 뷰 등]
[WHERE 조건 나열]
[GROUP BY ROLLUP 그룹화할 조건 나열(A, B, C ETC)]
[HAVING 그룹 함수 적용 조건 나열]
[ORDER BY 최종 결과 정렬]
FROM 테이블[, 테이블, 서브쿼리, 뷰 등]
[WHERE 조건 나열]
[GROUP BY ROLLUP 그룹화할 조건 나열(A, B, C ETC)]
[HAVING 그룹 함수 적용 조건 나열]
[ORDER BY 최종 결과 정렬]
대분류에서 중분류, 소분류 순으로 알아보기 쉽도록 할 수 있다.
분류별 결과는 아래로 나오게 되어 전체 결과는 가장 마지막에 출력됩니다.
SELECT 컬럼_이름, 계산식, 함수 등
FROM 테이블[, 테이블, 서브쿼리, 뷰 등]
[WHERE 조건 나열]
[GROUP BY ROLLUP 그룹화할 조건 나열(대분류, 중분류, 소분류순)]
[HAVING 그룹 함수 적용 조건 나열]
[ORDER BY 최종 결과 정렬]
FROM 테이블[, 테이블, 서브쿼리, 뷰 등]
[WHERE 조건 나열]
[GROUP BY ROLLUP 그룹화할 조건 나열(대분류, 중분류, 소분류순)]
[HAVING 그룹 함수 적용 조건 나열]
[ORDER BY 최종 결과 정렬]
Cube는...
롤업과는 달리 전체 집계, B별 집계, A별 집계, A,B별 집계로 나오게 되고 사용된 칼럼 수의 2배의 집계가 생성됩니다.
분류별 결과는 위에 나오게 되어 전체 결과는 가장 먼저 출력됩니다.
SELECT 컬럼_이름, 계산식, 함수 등
FROM 테이블[, 테이블, 서브쿼리, 뷰 등]
[WHERE 조건 나열]
[GROUP BY CUBE 그룹화할 조건 나열(A, B, C ETC)]
[HAVING 그룹 함수 적용 조건 나열]
[ORDER BY 최종 결과 정렬]
FROM 테이블[, 테이블, 서브쿼리, 뷰 등]
[WHERE 조건 나열]
[GROUP BY CUBE 그룹화할 조건 나열(A, B, C ETC)]
[HAVING 그룹 함수 적용 조건 나열]
[ORDER BY 최종 결과 정렬]
Grouping Sets는...
위의 것들과 달리 가장 세밀하게 선택을 해서 필요한 결과를 얻어 낼수 있습니다.
A, B순으로 출력됩니다.
SELECT 컬럼_이름, 계산식, 함수 등
FROM 테이블[, 테이블, 서브쿼리, 뷰 등]
[WHERE 조건 나열]
[GROUP BY GROUPING SETS 그룹화할 조건 나열(A, B, C ETC)]
[HAVING 그룹 함수 적용 조건 나열]
[ORDER BY 최종 결과 정렬]
FROM 테이블[, 테이블, 서브쿼리, 뷰 등]
[WHERE 조건 나열]
[GROUP BY GROUPING SETS 그룹화할 조건 나열(A, B, C ETC)]
[HAVING 그룹 함수 적용 조건 나열]
[ORDER BY 최종 결과 정렬]
스샷은 후 첨부 해야 할 듯 하네요... 아직 DB를 안깔아놔서리...
참고문서 : 열혈강의 10g로 시작하는 오라클 SQL & PL/SQL(P.151~157)
'Device & Language > Oracle' 카테고리의 다른 글
dual 테이블을 잘 사용해라~ (0) | 2010.09.19 |
---|