오라클 데이타베이스에서 소계합계처리는 다음과 같이 ROLLUP함수 사용
WITH P AS (
SELECT '20100901' AS FM_YMD -- 시작검색일
,'20101231' AS TO_YMD -- 종료검색일
FROM DUAL
)
SELECT /*+ PARALLEL(SND,2) */
DISTINCT
SND.SND_TYP "발송유형"
,SND.SND_YMD "발송일자"
,COUNT(*) "발송수량"
,SUM(CASE WHEN SND_SUCC_YN = 'Y' THEN 1 ELSE 0 END) "발송성공"
,SUM(CASE WHEN RCV_CFM_YN = 'Y' THEN 1 ELSE 0 END) "열람확인"
,GROUPING_ID(SND.SND_TYP) gid
FROM POW_BC.TB_BFSCAP_CNSNT_SND_HIST SND
WHERE 1 = 1
AND SND.SND_YMD BETWEEN (SELECT FM_YMD FROM P) AND (SELECT TO_YMD FROM P)
GROUP BY ROLLUP(SND.SND_TYP,SND.SND_YMD)
ORDER BY SND.SND_TYP
댓글 없음:
댓글 쓰기