WITH temp AS
(
select YEAR
,NTN_CD
,MONTH
,decode(NUM_OF_PERS,'0','자료없음',NUM_OF_PERS) v_amt
,to_char(PRVYY_VERSUS) v_rate
FROM T_TOURIST_STATS
)
SELECT YEAR || '년' AS year
, NTN_CD
, max(case when month = '1' then v_amt ELSE '' end) NUM_OF_PERS_JAN
, round(max(case when month = '1' then v_rate END),3) *100 PRVYY_VERSUS_JAN
FROM temp
group by YEAR, NTN_CD
HAVING NTN_CD = 'CN'
order by YEAR;
년도별 명수랑 퍼센트를 나타내주는 쿼리인데 데이터가 0이면 '자료없음' 이라고 표시해주고 싶은데 명수는 계산쿼리가 없어서 문자열로 출력이 가능한데
퍼센트경우 계산이 들어가서 문자열 출력이 잘 안되더라구요 어디 부분을 봐야 할까요?
CN 2004년 186246 0
CN 2005년 301458 61.9
CN 2006년 268689 -10.9
CN 2007년 410312 52.7
CN 2008년 426625 4
CN 2009년 238000 -44.2
CN 2010년 315200 32.4
CN 2011년 323200 2.5
CN 2012년 297800 -7.9
CN 2013년 322500 8.3
CN 2014년 294000 -8.8
CN 2015년 367700 25.1
CN 2016년 4775300 7.4
CN 2017년 3863800 -19.1
CN 2018년 4193500 8.5
CN 2019년 자료없음 0
CN 2020년 자료없음 0
CN 2021년 자료없음 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | SELECT ntn_cd , year || '년' year , MIN (DECODE( month , 1, v_amt)) num_of_pers_jan , MIN (DECODE( month , 1, v_rat)) prvyy_versus_jan , MIN (DECODE( month , 2, v_amt)) num_of_pers_feb , MIN (DECODE( month , 2, v_rat)) prvyy_versus_feb , MIN (DECODE( month , 3, v_amt)) num_of_pers_mar , MIN (DECODE( month , 3, v_rat)) prvyy_versus_mar , MIN (DECODE( month , 4, v_amt)) num_of_pers_apr , MIN (DECODE( month , 4, v_rat)) prvyy_versus_apr , MIN (DECODE( month , 5, v_amt)) num_of_pers_may , MIN (DECODE( month , 5, v_rat)) prvyy_versus_may , MIN (DECODE( month , 6, v_amt)) num_of_pers_jun , MIN (DECODE( month , 6, v_rat)) prvyy_versus_jun , MIN (DECODE( month , 7, v_amt)) num_of_pers_jul , MIN (DECODE( month , 7, v_rat)) prvyy_versus_jul , MIN (DECODE( month , 8, v_amt)) num_of_pers_aug , MIN (DECODE( month , 8, v_rat)) prvyy_versus_aug , MIN (DECODE( month , 9, v_amt)) num_of_pers_sep , MIN (DECODE( month , 9, v_rat)) prvyy_versus_sep , MIN (DECODE( month , 10, v_amt)) num_of_pers_oct , MIN (DECODE( month , 10, v_rat)) prvyy_versus_oct , MIN (DECODE( month , 11, v_amt)) num_of_pers_nov , MIN (DECODE( month , 11, v_rat)) prvyy_versus_nov , MIN (DECODE( month , 12, v_amt)) num_of_pers_dec , MIN (DECODE( month , 12, v_rat)) prvyy_versus_dec FROM ( SELECT ntn_cd , year , month , DECODE(num_of_pers , 0, '자료없음' , num_of_pers) v_amt , DECODE(prvyy_versus, 0, '자료없음' , ROUND(prvyy_versus * 100, 1)) v_rat FROM t_tourist_stats WHERE ntn_cd = 'CN' ) GROUP BY ntn_cd, year ORDER BY ntn_cd, year ; |