GROUPING SETS 안에 ROLLUP 질문 0 3 2,598

by 분석함수 [SQL Query] [2013.02.20 21:16:14]


안녕하세요 회원님들
궁금한게 있어서 질문드립니다.

제가 어떤 현황을 짜는데
아래와 같이
GROUP BY GROUPING SETS(
ROLLUP(CORP_CD,SALE_DEPT_CD,BUY_CORP_CD),
ROLLUP(CORP_CD,NATI_GRP_CD,BUY_CORP_CD))   

GROUPING SETS 로 두개의 그룹을 나눠서 각각에 ROLLUP을 씌웠습니다.

GROUPING_ID 를 각각

GROUPING_ID(CORP_CD,SALE_DEPT_CD,BUY_CORP_CD) AS G_ID1,
GROUPING_ID(CORP_CD,NATI_GRP_CD,BUY_CORP_CD) AS G_ID2

이런식으로 씌웠을때
G_ID1과 G_ID2 가 7이 됐을때에 똑같은 ROW 가 2개 생기는데
(3일때도 마찬가지지만 3은 필터링 한다고 가정)
분석함수 쓰고 그런거 없이 간단하게
중복되는 ROW 중 하나를 없애는 법 있을까요?





by 마농 [2013.02.21 09:05:09]

GROUP BY GROUPING SETS
( ROLLUP(a,b,d)
, ROLLUP(a,c,d)
)
에서 나올수 있는 그룹바이 조합은
- a,b,d
- a,b
- a
- 전체
- a,c,d
- a,c
- a
- 전체
입니다. a 와 전체가 중복되네요.
Grouping Sets 와 Rollup 을 함께 쓰는 사례는 드믄 경우네요.
차라리 원하는 그룹 셋트를 모두 나열 하시는건 어떠신지요?
GROUP BY GROUPING SETS
( (a,b,d)
, (a,b)
, (a,c,d)
, (a,c)
, ROLLUP(a)
)


by 마농 [2013.02.21 10:41:38]

참고로 롤업, 큐브, 그룹핑셋 사용시에 행을 구별하는 방법은 총 3가지가 있습니다.
GROUPING(a)
GROUPING_ID(a,b)
GROUP_ID()


by 분석함수 [2013.02.22 18:30:47]

좋은 답변감사드립니다.  ^^
한번 그룹셋트를 모두 나열해 보는 방법을 선택 해보는것도
좋을거 같군요

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