세로 데이터를 가로로 출력하는 쿼리 질문입니다 0 3 517

by 짜롱 [SQL Query] [2017.04.24 23:13:26]


SELECT TEAM_ID 팀코드, CONCAT(COUNT(*), '명') 인원수 FROM PLAYER
GROUP BY TEAM_ID ORDER BY TEAM_ID;

이렇게 입력을 하면

팀코드 인원수
------ --------------------------------------------------------------------------------------
K01    45명
K02    49명
K03    49명
K04    46명
K05    51명
K06    46명
K07    51명
K08    45명
K09    49명
K10    36명
K11    3명

 

이런식으로 뜨는데 이걸

K01   K02   K03   K04  ~~~~~~ K14 K15

45명 45명  49명  46명              45명  45명

이렇게 표현 되게 만들려면 어떻게 해야하나요..ㅠㅠ

by 마농 [2017.04.25 08:45:58]
SELECT COUNT(DECODE(team_id, 'K01', 1)) K01
     , COUNT(DECODE(team_id, 'K02', 1)) K02
     , COUNT(DECODE(team_id, 'K03', 1)) K03
     , COUNT(DECODE(team_id, 'K04', 1)) K04
     , COUNT(DECODE(team_id, 'K05', 1)) K05
     , COUNT(DECODE(team_id, 'K06', 1)) K06
     , COUNT(DECODE(team_id, 'K07', 1)) K07
     , COUNT(DECODE(team_id, 'K08', 1)) K08
     , COUNT(DECODE(team_id, 'K09', 1)) K09
     , COUNT(DECODE(team_id, 'K10', 1)) K10
     , COUNT(DECODE(team_id, 'K11', 1)) K11
     , COUNT(DECODE(team_id, 'K12', 1)) K12
     , COUNT(DECODE(team_id, 'K13', 1)) K13
     , COUNT(DECODE(team_id, 'K14', 1)) K14
     , COUNT(DECODE(team_id, 'K15', 1)) K15
  FROM player
;

 


by 짜롱 [2017.04.27 00:06:36]

감사합니다 혹시 DECODE 함수를 사용해서 입력하는 것 말고 다른 방법으로도 되는 것 있나요?


by 마농 [2017.04.27 07:16:11]
SELECT *
  FROM (SELECT team_id FROM player)
 PIVOT (COUNT(*) FOR team_id IN ( 'K01', 'K02', 'K03', 'K04', 'K05'
                                , 'K06', 'K07', 'K08', 'K09', 'K10'
                                , 'K11', 'K12', 'K13', 'K14', 'K15'
                                ) )
;

 

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