도와주세요 고수님형님들 0 3 636

by 스티브1조 [SQL Query] [2018.02.28 09:15:27]


SELECT 
     CASE GROUPING(SUM_ITEM) WHEN 1 THEN '전체' ELSE  (SUM_ITEM)  END as 연령별
    , SUM(EVT_REQ_CNT) 참여자수
    , SUM(EVT_WIN_CNT) 당첨자수
    , CONCAT(TRUNC(SUM((EVT_WIN_CNT) * 100) / SUM(EVT_REQ_CNT),1),'%') 당첨율
FROM SUMMARY_EVT_B
WHERE  SUM_TYPE = 'AGE' 
    GROUP BY  ROLLUP(SUM_ITEM)
    ORDER BY SUM_ITEM NULLS FIRST;

여기서 롤업해서 가져온 전체 참여자수 전체 당첨자수를 가져왔습니다 근데 각각행마다 ,

롤업해서 가져온 전체값을가지고  연산을 하려는데 안대네요 ㅠㅠ

by 우리집아찌 [2018.02.28 09:19:40]

원하시는 출력데이토와 샘플데이터를 올려주세요.


by 무지버기 [2018.02.28 10:12:35]

SUM(DECODE(GROUPING(SUM_ITEM),0,SUM(EVT_REQ_CNT) OVER() --참여자수 합

SUM(DECODE(GROUPING(SUM_ITEM),0,SUM(EVT_WIN_CNT) OVER() --당첨자수 합

으로 이용하셔도 됩니다.


by 마농 [2018.03.02 08:51:48]

참여율(연령별참여자수 / 전체참여자수)을 구하고자 한다면? RATIO_TO_REPORT 를 이용하세요.
, RATIO_TO_REPORT(SUM(evt_req_cnt)) OVER(PARTITION BY GROUPING(sum_item)) AS 참여율

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