count질문있습니다. 0 5 601

by fkdltpstjd [2018.03.18 09:36:07]


id랑 yn으로 입력되는 칼럼 20개로 구성되어 있는 테이블이 있는데

y로 저장되어 있는 칼럼의 갯수를 구하고 싶습니다.

by fkdltpstjd [2018.03.18 09:39:20]
select id, yn1,yn2,yn3,yn4,yn5,yn6,yn7,yn8,yn9,yn10,


yn11,yn12,yn13,yn14,yn15,yn16,yn17,yn18,yn19,yn20


from a

 


by 우리집아찌 [2018.03.19 09:07:17]
WITH A ( id, yn1,yn2,yn3,yn4,yn5,yn6,yn7,yn8,yn9,yn10,yn11,yn12,yn13,yn14,yn15,yn16,yn17,yn18,yn19,yn20) AS (
SELECT '1','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','N' FROM DUAL UNION ALL
SELECT '2','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','N' FROM DUAL 
)

SELECT ID
     , COUNT(CASE WHEN VAL = 'Y' THEN 1 END ) CNT 
  FROM ( SELECT * 
           FROM A
         UNPIVOT ( VAL FOR YN IN ( yn1,yn2,yn3,yn4,yn5,yn6,yn7,yn8,yn9,yn10,yn11,yn12,yn13,yn14,yn15,yn16,yn17,yn18,yn19,yn20))
        )
 GROUP BY ID 
 
 

 


by 마농 [2018.03.19 09:44:34]
SELECT id
     , REGEXP_COUNT( yn1||yn2||yn3||yn4||yn5||yn6||yn7||yn8||yn9||yn10||
                     yn11||yn12||yn13||yn14||yn15||yn16||yn17||yn18||yn19||yn20
                   , 'Y') cnt_y
  FROM a
;
SELECT *
  FROM a
 UNPIVOT (yn FOR gb IN (yn1,yn2,yn3,yn4,yn5,yn6,yn7,yn8,yn9,yn10
              ,yn11,yn12,yn13,yn14,yn15,yn16,yn17,yn18,yn19,yn20))
 PIVOT (COUNT(gb) FOR yn IN ('Y' cnt))
;

 


by 우리집아찌 [2018.03.19 10:32:15]

아.. pivot에서 처리 되는데..


by fkdltpstjd [2018.03.31 18:38:02]

감사합니다

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