티스토리 뷰
반응형
오라클 group by절에 사용되는 rollup과 cube는 편리한 함수입니다.
이 함수들이 없다면 데이터 복제를 통해 group by된 값의 sum(총계)등을 통해
구현해야 합니다. 그러지 않으면 어플리케이션에서 해야 겠죠.
편리함에도 불구하고 rollup과 cube가 자꾸 햇갈립니다.
아래 공식으로 한방에 이해해 보죠.
1. rollup ( group by절 오른쪽 컬럼부터 삭제하며 그룹을 생성하라)
ex) select a, b, count(*)
from tmp
group by rollup(a,b)
-- 나올수 있는 집합
a, b, count(*)
union all
a, null, count(*)
union all
null, null, count(*)
==> 오른쪽 컬럼인 b부터 null로 대체 되면서 그룹이 생성됩니다.
위의 예제는 총 3개의 집합이 생성되겠죠.
2. cube (group by절에 기술된 컬럼이 조합될 수 있는 모든 경우의 집합을 생성하라)
ex) select a, b, count(*)
from tmp
group by rollup(a,b)
-- 나올수 있는 집합
a, b, count(*)
union all
a, null, count(*)
union all
null, b, count(*)
unoin all
null, null, count(*)
==> rollup에 비해 null, b, count(*)인 집합이 추가로 생성된걸 볼 수 있습니다.
3. grouping sets ( comma(,)를 union으로 바꿔서 group by절을 계속 생성하라) ... 9i부터 사용할 수 있음
ex) select a, b, sum(c)
from tmp
group by
grouping sets (a, b)
-- 나올 수 있는 집합
group by a
union all
group by b
참고) http://scidb.tistory.com/
이 함수들이 없다면 데이터 복제를 통해 group by된 값의 sum(총계)등을 통해
구현해야 합니다. 그러지 않으면 어플리케이션에서 해야 겠죠.
편리함에도 불구하고 rollup과 cube가 자꾸 햇갈립니다.
아래 공식으로 한방에 이해해 보죠.
1. rollup ( group by절 오른쪽 컬럼부터 삭제하며 그룹을 생성하라)
ex) select a, b, count(*)
from tmp
group by rollup(a,b)
-- 나올수 있는 집합
a, b, count(*)
union all
a, null, count(*)
union all
null, null, count(*)
==> 오른쪽 컬럼인 b부터 null로 대체 되면서 그룹이 생성됩니다.
위의 예제는 총 3개의 집합이 생성되겠죠.
2. cube (group by절에 기술된 컬럼이 조합될 수 있는 모든 경우의 집합을 생성하라)
ex) select a, b, count(*)
from tmp
group by rollup(a,b)
-- 나올수 있는 집합
a, b, count(*)
union all
a, null, count(*)
union all
null, b, count(*)
unoin all
null, null, count(*)
==> rollup에 비해 null, b, count(*)인 집합이 추가로 생성된걸 볼 수 있습니다.
3. grouping sets ( comma(,)를 union으로 바꿔서 group by절을 계속 생성하라) ... 9i부터 사용할 수 있음
ex) select a, b, sum(c)
from tmp
group by
grouping sets (a, b)
-- 나올 수 있는 집합
group by a
union all
group by b
참고) http://scidb.tistory.com/
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Sybase IQ
- 유가바이트디비
- 별이 빚나는 밤
- GKRS
- 매직 트랙패드2
- 카카오 에드
- Pixel Pals
- 남설 팔찌
- 파나소닉 비데 DL-EH10KWS
- JMW 헤어드라이기기
- weka
- 홈 오피스
- 솔리드 쿨론
- yugabyteDB
- 고체 향수
- 루미큐브 종류
- 코라나 19
- 로니카 BCS
- node.js
- 르세라핌
- 오미크론
- VARIDESK
- 증권정보포털
- Life Chair
- 화분벌레
- 톡토기
- 배당급
- 별잉 빛나는 밤
- 브리다 정수기
- 빈센트 반 고흐
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함