부분합, 총계를 내야하는데 rollup을 사용할 수 없을때.. 0 4 3,542

by 제스퍼 [2012.08.13 11:55:17]


date.jpg (114,638Bytes)
date_0.jpg (165,360Bytes)

위의 데이터를 아래의 데이터처럼 만들고자 합니다

카테고리를 기준으로 rollup하면 될꺼 같은데 뒤에 param_X 들 때문에 기준이 되지를 못하네요..

어떤식으로 해결해야될까요?

pl/sql은 안되고 쿼리로만 해결해야되는 상황인데 어떻게 해야될지 감이 안오네요..흠;;

쿼리로 안될까요 이런 상황은?

by 오케클릭 [2012.08.13 12:35:03]

rollup 사용하시면 될듯 싶은데요~ param_X들때문이라면...
쿼리를 2개 만들어서 param_X는 left outer join 으로 해서 붙이면 되지 않을까요?

by 마농 [2012.08.13 12:59:18]
SELECT 날짜, 프로젝트이름, 카테고리이름
     , 페이지이름, param_1, param_2
     , COUNT(*) cnt
  FROM 테이블
 GROUP BY 날짜, 프로젝트이름, 카테고리이름
     , ROLLUP((페이지이름, param_1, param_2))
;

by 제스퍼 [2012.08.13 13:53:54]

오케클릭 // 의견 감사합니다. 근데 제가 초보라 어떤식으로 쿼리를 2개 만들어야될지 감이 안오네요 ㅠㅠ

마농 // 감사합니다. COUNT(*) cnt 자리에 SUM(cnt) cnt 하니까 값 제대로 나옵니다!
근데 괄호 2개를 하는게 결과가 달라지네요..처음알았습니다..감사합니다!


by Oracler [2012.08.13 13:58:42]
rollup(a, b, c)는 rollup((a), (b), (c))를 의미합니다. 따라서 rollup((a, b, c))와는 전혀 다른 결과가 나오는 것이지요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입