피벗 테이블 쿼리 좀 부탁드립니다. 0 2 1,216

by 이상훈84 [SQL Query] [2016.09.12 11:40:34]


2015 01 38085
2015 02 29924
2015 03 67709
2015 04 71050
2015 05 52668
2015 06 60676
2015 07 47916
2015 08 41090
2015 09 49473
2015 10 63641
2015 11 63167
2015 12 52625
2016 01 41183
2016 02 37628
2016 03 70515
2016 04 66726
2016 05 76492
2016 06 62377
2016 07 82818
2016 08 1
2016 09 1

 

이런 데이터를

 

월   2015   2016

01  38085  41183

02  29924  37628

03

04

......

 

피벗을 사용하는게 맞는지 모르겠습니다만,

이런 식으로 표현하려면 어떤 식으로 해야 할까요? 오라클 9i 입니다.

선배님들 부탁드리고, 미리 감사드립니다.

by jkson [2016.09.12 12:14:55]
with t as
(select '2015' yyyy, '01' mm, '38085' val from dual
union all
select '2015' yyyy, '02' mm, '29924' val from dual
union all
select '2016' yyyy, '01' mm, '41183' val from dual
union all
select '2016' yyyy, '02' mm, '37628' val from dual
)
select mm
     , max(decode(yyyy,'2015',val)) val2015
     , max(decode(yyyy,'2016',val)) val2016 
  from t
 group by mm
 order by mm

 


by swlee [2016.09.12 13:08:34]
with t as ( 
select 2015 yyyy, '01' mm, 38085 val from dual union all
select 2015, '02', 29924 from dual union all
select 2015, '03', 67709 from dual union all
select 2016, '01', 41183 from dual union all
select 2016, '02', 37628 from dual union all
select 2016, '03', 70515 from dual
)
select *
from t
pivot (min(val) for yyyy in (2015,2016));

 

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