저 표처럼 쿼리를 어떻게 짜야할지 0 2 610

by 북치는소년 [SQL Query] [2022.01.09 00:25:54]


년월 프로그램 응답시간
201901 A 1.2
201902 A 1.3
201903 A 1.2
201901 B 2.1
201902 B 2.2
201903 B 2.5

이게 데이터구요..

  201901 201902 201903
A 1.2 1.3 1.2
B 2.1 2.2 2.5

이렇게 쿼리를 만들고싶은데

어떻게 접근해야할지 모르겠어요..ㅠ

 

by 마농 [2022.01.10 09:49:35]
SELECT pgm
     , MIN(DECODE(ym, '201901', tm)) "201901"
     , MIN(DECODE(ym, '201902', tm)) "201902"
     , MIN(DECODE(ym, '201903', tm)) "201903"
  FROM t
 WHERE ym IN ('201901', '201902', '201903')
 GROUP BY pgm
 ORDER BY pgm
;

 


by 뉴비입니다 [2022.01.10 11:13:14]

우선 http://www.gurubee.net/lecture/1028 이부분을 읽어보시고 구글에 sql 행열 바꾸기 검색하셔서 방법들을 이해하시면 좋을 것 같습니다.

방법은 많네요

 

select gubun, SUM(DECODE(ym, '201901', tm)) "201901",
              SUM(DECODE(ym, '201902', tm)) "201902",
              SUM(DECODE(ym, '201903', tm)) "201903"
from t
group by gubun;
select gubun, SUM(case when YM='201901' then tm end) AS "201901",
              SUM(case when YM='201902' then tm end) AS "201902",
              SUM(case when YM='201903' then tm end) AS "201903"
from t
group by gubun;
select *
  from t
 pivot (SUM(TM) FOR YM IN ('201901', '201902', '201903'));
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입