샤브의 블로그 RSS 태그 관리 글쓰기 방명록
group by (1)
2010-09-20 00:08:37
 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는...
가장 간단하게 그룹화된 결과값을 출렵합니다.
그룹화한 조건에 의해 추가적인 것 없이 출력됩니다.
SELECT                   컬럼_이름, 계산식, 함수 등
FROM                       테이블[, 테이블, 서브쿼리, 뷰 등]
[WHERE                   조건 나열]
[GROUP BY ROLLUP 그룹화할 조건 나열(A, B, C ETC)]
[HAVING                  그룹 함수 적용 조건 나열]
[ORDER BY              최종 결과 정렬]

Rollup은...
대분류에서 중분류, 소분류 순으로 알아보기 쉽도록 할 수 있다.
분류별 결과는 아래로 나오게 되어 전체 결과는 가장 마지막에 출력됩니다.
SELECT                   컬럼_이름, 계산식, 함수 등
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              최종 결과 정렬]

Grouping Sets는...
위의 것들과 달리 가장 세밀하게 선택을 해서 필요한 결과를 얻어 낼수 있습니다.
A, B순으로 출력됩니다.
SELECT                                  컬럼_이름, 계산식, 함수 등
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