SELECT YYYYMMDT,TD_OA, TD_OB, TD_OC,TD_OD,TD_OE,TD_OF,TD_OG,TD_OH,TD_OI,
TD_AO,TD_AA,TD_AB,TD_AC,TD_AD,TD_AE,TD_AF,TD_AG,TD_AH,TD_AI,TD_BO,TD_BA,TD_BB,TD_BC,TD_BD
, MIN(DECODE(RN,1,MAX1)) TD, MIN(DECODE(RN,2,MAX1)) TD, MIN(DECODE(RN,3,MAX1)) TD, MIN(DECODE(RN,4,MAX1)) TD, MIN(DECODE(RN,5,MAX1)) TD, MIN(DECODE(RN,6,MAX1)) TD
, MIN(DECODE(RN,7,MAX1)) TD, MIN(DECODE(RN,8,MAX1)) TD, MIN(DECODE(RN,9,MAX1)) TD, MIN(DECODE(RN,10,MAX1)) TD, MIN(DECODE(RN,11,MAX1)) TD, MIN(DECODE(RN,12,MAX1)) TD
, MIN(DECODE(RN,13,MAX1)) TD, MIN(DECODE(RN,14,MAX1)) TD, MIN(DECODE(RN,15,MAX1)) TD, MIN(DECODE(RN,16,MAX1)) TD, MIN(DECODE(RN,17,MAX1)) TD, MIN(DECODE(RN,18,MAX1)) TD
, MIN(DECODE(RN,19,MAX1)) TD, MIN(DECODE(RN,20,MAX1)) TD, MIN(DECODE(RN,21,MAX1)) TD, MIN(DECODE(RN,22,MAX1)) TD, MIN(DECODE(RN,23,MAX1)) TD, MIN(DECODE(RN,24,MAX1)) TD
FROM
(
SELECT YYYYMMDT,TD_OA, TD_OB, TD_OC,TD_OD,TD_OE,TD_OF,TD_OG,TD_OH,TD_OI,TD_AO,
TD_AA,TD_AB,TD_AC,TD_AD,TD_AE,TD_AF,TD_AG,TD_AH,TD_AI,TD_BO,TD_BA,TD_BB,TD_BC,TD_BD,
DECODE(lv,1,TD_oa,lv,2,TD_ob,lv,3,TD_oc,lv,4,TD_od,lv,5,TD_oe,lv,6,TD_of
,lv,7,TD_og,lv,8,TD_oh,lv,9,TD_oi,lv,10,TD_ao,lv,11,TD_aa,lv,12,TD_ab
,lv,13,TD_ac,lv,14,TD_ad,lv,15,TD_ae,lv,16,TD_af,lv,17,TD_ag,lv,18,TD_ah
,lv,19,TD_ai,lv,20,TD_bo,lv,21,TD_ba,lv,22,TD_bb,lv,23,TD_bc,lv,24,TD_bd) MAX1,
ROW_NUMBER() OVER(PARTITION BY TD_OA, TD_OB, TD_OC,TD_OE,TD_OF,TD_OG,TD_OH,TD_OI,TD_AO,
TD_AA,TD_AB,TD_AC,TD_AD,TD_AE,TD_AF,TD_AG,TD_AH,TD_AI,TD_BO,TD_BA,TD_BB,TD_BC,TD_BD
ORDER BY DECODE(lv,1,TD_oa,lv,2,TD_ob,lv,3,TD_oc,lv,4,TD_od,lv,5,TD_oe,lv,6,TD_of
,lv,7,TD_og,lv,8,TD_oh,lv,9,TD_oi,lv,10,TD_ao,lv,11,TD_aa,lv,12,TD_ab
,lv,13,TD_ac,lv,14,TD_ad,lv,15,TD_ae,lv,16,TD_af,lv,17,TD_ag,lv,18,TD_ah
,lv,19,TD_ai,lv,20,TD_bo,lv,21,TD_ba,lv,22,TD_bb,lv,23,TD_bc,lv,24,TD_bd) DESC) RN
FROM system.acctest_ds
,(SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 24))
group by YYYYMMDT,TD_OA,TD_OB,TD_OC,TD_OD,TD_OE,TD_OF,TD_OG,TD_OH,TD_OI,TD_AO,
TD_AA,TD_AB,TD_AC,TD_AD,TD_AE,TD_AF,TD_AG,TD_AH,TD_AI,TD_BO,
TD_BA,TD_BB,TD_BC,TD_BD;
제가 초짜라서 알려주신데로 작성해보려고 이해를 잘 못하면서 때려 맞추기로 좀 해봤는데요
최고 큰 데이터를 가진 필드순으로 정렬이 안되는거 같아요
데이터 출력을해보면 원래 system.acctest_ds 테이블에 데이터를 그대로 보여주고
뒤에 td, td_1,td_2,td_3,td_..... 23까지 필드가 생기는데 뒤에생기는
td에는 td_oa에 데이터가 들어가있고 td_1부터는 필드들에 데이터들은 모두 2로만 채워지는데여
재가 쿼리를 잘못 작성한거가네요 ;;
혹시 알려주신방법이 한행에 데이터를 한컬럼에 세로로 행번호를 줘서 임시로 저장했다가
순위를매겨서 다시 순위별로 가로로 펼치면서 정렬 시키는 그런 개념이 맞나요?
그리고 tab1에 자리에 테이블 명이아닌
select
Round(AVG(SUM(TD_OA))), Round(AVG(SUM(TD_OB))), Round(AVG(SUM(TD_OC))),
Round(AVG(SUM(TD_OD))), Round(AVG(SUM(TD_OE))), Round(AVG(SUM(TD_OF))),
Round(AVG(SUM(TD_OG))), Round(AVG(SUM(TD_OH))), Round(AVG(SUM(TD_OI))),
Round(AVG(SUM(TD_AO))), Round(AVG(SUM(TD_AA))), Round(AVG(SUM(TD_AB))),
Round(AVG(SUM(TD_AC))), Round(AVG(SUM(TD_AD))), Round(AVG(SUM(TD_AE))),
Round(AVG(SUM(TD_AF))), Round(AVG(SUM(TD_AG))), Round(AVG(SUM(TD_AH))),
Round(AVG(SUM(TD_AI))), Round(AVG(SUM(TD_BO))), Round(AVG(SUM(TD_BA))),
Round(AVG(SUM(TD_BB))), Round(AVG(SUM(TD_BC))), Round(AVG(SUM(TD_BD)))
from system.ACCTEST_DS
WHERE YYYYMMDT in to_char(to_date(’20071029’,’yyyymmdd’)-(7*1), ’yyyymmdd’)
or YYYYMMDT in to_char(to_date(’20071029’,’yyyymmdd’)-(7*2), ’yyyymmdd’)
or YYYYMMDT in to_char(to_date(’20071029’,’yyyymmdd’)-(7*3), ’yyyymmdd’) group by yyyymmdt
이 쿼리를 통채로 넣어도 괜찮을까요? 이 쿼리를 통해서 구해진 데이터들을
크기별로 정렬시키려는데 혼돈이 되네요 ;;