누락된 우괄호라고 에러나요 ㅜㅜ 0 4 583

by 스티브1조 [Oracle 에러코드] [2018.02.21 14:46:21]


SELECT SUM(COUNT(REQ_NO)) AS 응모자 ,
       SUM(DECODE(WIN_YN,'Y',1,0)) AS 당첨자,
       TRUNC(SUM(DECODE(WIN_YN,'Y',1,0))/SUM(COUNT(REQ_NO))*100,1) AS 통계,
     
       (SELECT SUM(DECODE(COUNT(D.WIN_YN),1,1,NULL)) AS 당첨횟수1회
        FROM EVT_BTPOINT_REQ D
        WHERE D.WIN_YN = 'Y'
        GROUP BY D.MEMBER_NO
        ORDER BY D.MEMBER_NO
       ) 당첨횟수1회 
       
FROM EVT_BTPOINT_REQ
GROUP BY MEMBER_NO,REQ_NO,WIN_YN;

by 마농 [2018.02.21 15:15:10]
SELECT COUNT(*) AS 응모_회원수
     , SUM(cnt) AS 응모_건수
     , SUM(win) AS 당첨_건수
     , TRUNC(SUM(win) / SUM(cnt) * 100, 1) AS 당첨_비율
     , COUNT(DECODE(win, 1, 1)) AS 당첨횟수1회_회원수
  FROM (SELECT COUNT(*) cnt                         -- 응모_건수
             , COUNT(DECODE(win_yn, 'Y', 1)) win    -- 당첨_건수
          FROM evt_btpoint_req
         GROUP BY member_no                         -- 회원별
        )
;

 


by 스티브1조 [2018.02.21 15:30:09]

감사합니다 그런데 당첨횟수를 구하는거라서 당첨1회횟수 당첨 2회된횟수 당첨 3회된횟수입니다

 

SELECT  SUM(cnt) AS 응모자
     , SUM(win) AS 당첨자
     , TRUNC(SUM(win) / SUM(cnt) * 100, 1) AS 당첨_비율
     , COUNT(DECODE(win, 1, 1)) AS 당첨횟수1회_회원수
     , COUNT(DECODE(win, 2, 2)) AS 당첨횟수2회_회원수
      , COUNT(DECODE(win, 3, 3)) AS 당첨횟수3회_회원수
  FROM (SELECT COUNT(*) cnt
             , COUNT(DECODE(win_yn, 'Y', 1)) win
          FROM evt_btpoint_req
         GROUP BY member_no
        )
;

이런식으로하니 겹쳐서 총 당첨자랑 1회 2회 3회 합친거랑 안맞네요 ㅠㅠ

 


by 마농 [2018.02.21 15:36:51]

count(2) 한다고 2건씩 카운트 되지 않습니다. 한번씩만 카운트 되지요.
count(2) 대신 sum(2) 하면 되지만...
표현이 모호해 집니다. 회원수도 아니고 당첨수가 되는데... 당첨횟수2회_회원의_총당첨수
답글에서 당첨자, 응모자라는 표현 대신 당첨_건수, 응모_건수 라는 표현으로 바꾼 것도
모호한 표현을 명확하게 하기 위함입니다.
단순 횟수 기준인지? 사람 기준인지?


by 스티브1조 [2018.02.21 15:39:23]

해결했습니다 너무 감사합니다^^

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