group by 절에 decode 사용못하나요..? rollup 때문에.. 0 3 4,192

by 요루 group by GROUPING [2009.02.26 09:49:26]


Rollup을 사용하면 확실히 성능을 향상시킬수잇는 상황인데

첫번째 조회시는 최상단에 합계 조회, 두번째 조회부터는 합계 없이 내역만 나오게..

상황에 따라서 롤업을 하기도해야하고, 안해야 하기도해야 해서

group by 절이 상황에 따라서 좀 달라져야 합니다.


group by decode(:t,'1',rollup(dt),dt)


이런식으로 하니까 안먹네요... 좋은 방법없을까요?


by 마농 [2009.02.26 10:24:01]
GROUP BY ROLLUP(dt)
HAVING GROUPING(dt) = 0 OR :t = 1

by 요루 [2009.02.26 10:51:09]
아.. having절에 대해 다시 한번 생각하게 되네요..
합계(rollup의 결과)가 아니거나 t가 1이면...

having절이 거짓이 되면 group by를 안하는건가요?
결과를 보니 ROLLUP(dt) 은 안하더라도 dt로는 group하는것 같은데..

by 요루 [2009.02.26 10:58:23]
아~ 쿼리 연산 순서상 group by 를 모두 해놓고
나중에 having절로 걸러내기때문이군요?

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