ROLLUP 질문있습니다! 1 2 900

by 빛나는관 [Oracle 기초] [2015.08.07 19:49:01]


2.PNG (12,725Bytes)
1.PNG (12,443Bytes)

group by rollup(A, B, C) 에서 group by A, rollup(B, C)가 됐을 시 왜 전체 합계가 없어지는지 궁금합니다.

사진에서 보듯이, DEPTNO가 전체합계의 레벨인 건 가요? 정확히 이해가 잘 안 됩니다!

by 마농 [2015.08.08 11:36:33]

GROUP BY ROLLUP(a, b, c) 는 잘게 쪼개면 몇가지 그룹으로 분리됩니다.
1. GROUP BY a, b, c
2. GROUP BY a, b
3. GROUP BY a
4. GROUP BY ''
위 4가지를 순서대로 보면 오른쪽 컬럼부터 하나씩 줄어드는 형태인거죠.


GROUP BY a, ROLLUP(b, c) 도 롤업을 풀어볼까요?
1. GROUP BY a, b, c
2. GROUP BY a, b
3. GROUP BY a
3가지 그룹으로 나뉘는데요. 원리는 마찬가지입니다.
오른쪽 컬럼부터 하나씩 사라지는 거죠.
단, a 는 롤업과는 전혀 상관이 없습니다.


이번에는 응용편으로 괄호도 사용이 가능합니다.
GROUP BY ROLLUP((a, b, c)) 는 어떤 결과가 나올까요?
괄호로 묶인 (a, b, c)가 한몸처럼 같이 묵여서 사라집니다.
1. GROUP BY a, b, c
2. GROUP BY ''


여러가지 응용이 가능하겟죠.
GROUP BY a, ROLLUP((b, c))
GROUP BY ROLLUP(a, (b, c))


참고자료 : http://www.gurubee.net/article/61235


by 빛나는관 [2015.08.08 21:15:18]

이제 입문자인데도 불구하고 이해가 정말 잘 됩니다! 감사합니다~!!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입