호야님 추가 질문이요,,,,, 0 3 1,982

by 허브 [2008.10.20 17:55:23]


바쁘신데 계속 질문해서 죄송한데요.

두테이블에서 검색해온 데이터를 다른 테이블로 적재시킬때 구분자를 써서 적재 시킨다고

하셨는데 구분자는 어떻게 써서 적재 하는지 모르겠어요...

 

그냥

select
sum(TD_OA), sum(TD_OB), sum(TD_OC), sum(TD_OD),
sum(TD_OE), sum(TD_OF), sum(TD_OG), sum(TD_OH), sum(TD_OI),
sum(TD_AO), sum(TD_AA), sum(TD_AB), sum(TD_AC), sum(TD_AD),
sum(TD_AE), sum(TD_AF), sum(TD_AG), sum(TD_AH), sum(TD_AI),
sum(TD_BO), sum(TD_BA), sum(TD_BB), sum(TD_BC), sum(TD_BD)
from system.ACCTEST_DS 
where
yyyymmdt in to_char(to_date('20070529','yyyymmdd')-(7*1), 'yyyymmdd')
or yyyymmdt in to_char(to_date('20070529','yyyymmdd')-(7*2), 'yyyymmdd')
or yyyymmdt in to_char(to_date('20070529','yyyymmdd')-(7*3), 'yyyymmdd') group by yyyymmdt;

이렇게하니까 3개의 로우가 생기는데요 이값들을 평균을 내면 값이 나올거 같기도한데

위에처럼 하면 평균을 내는 명령어는 어떻게 정의해야할지 모르겠네요 ㅠㅠ;

 

by 호야 [2008.10.20 18:23:15]
SELECT
AVG(SUM(TD_OA)), AVG(SUM(TD_OB)), AVG(SUM(TD_OC)), AVG(SUM(TD_OD)),
AVG(SUM(TD_OE)), AVG(SUM(TD_OF)), AVG(SUM(TD_OG)), AVG(SUM(TD_OH)), AVG(SUM(TD_OI)),
AVG(SUM(TD_AO)), AVG(SUM(TD_AA)), AVG(SUM(TD_AB)), AVG(SUM(TD_AC)), AVG(SUM(TD_AD)),
AVG(SUM(TD_AE)), AVG(SUM(TD_AF)), AVG(SUM(TD_AG)), AVG(SUM(TD_AH)), AVG(SUM(TD_AI)),
AVG(SUM(TD_BO)), AVG(SUM(TD_BA)), AVG(SUM(TD_BB)), AVG(SUM(TD_BC)), AVG(SUM(TD_BD))
FROM SYSTEM.ACCTEST_DS
WHERE YYYYMMDT IN (TO_CHAR(TO_DATE('20070529','YYYYMMDD')-7, 'YYYYMMDD') ,
TO_CHAR(TO_DATE('20070529','YYYYMMDD')-14, 'YYYYMMDD') ,
TO_CHAR(TO_DATE('20070529','YYYYMMDD')-21, 'YYYYMMDD'))
GROUP BY YYYYMMDT

에고.. 답변이 늦었네요.^ㅡ^; 회의 하고 온다고..ㅎㅎ

수고하세욤.. 이렇게 하시면SUM 된 값을 중심으로
평균이 나올겁니다.. ㅅㄱㅇ

by 서성우 [2008.10.20 18:31:25]
select yyyymmdd,
Round(sum(TD_OA)/Count(yyyymmdd)), Round(sum(TD_OB)/Count(yyyymmdd)), Round(sum(TD_OC)/Count(yyyymmdd)), Round(sum(TD_OD)/Count(yyyymmdd)),
Round(sum(TD_OE)/Count(yyyymmdd)), Round(sum(TD_OF)/Count(yyyymmdd)), Round(sum(TD_OG)/Count(yyyymmdd)), Round(sum(TD_OH)/Count(yyyymmdd)),
Round(sum(TD_OI)/Count(yyyymmdd)), Round(sum(TD_AO)/Count(yyyymmdd)), Round(sum(TD_AA)/Count(yyyymmdd)), Round(sum(TD_AB)/Count(yyyymmdd)),
Round(sum(TD_AC)/Count(yyyymmdd)), Round(sum(TD_AD)/Count(yyyymmdd)), Round(Sum(TD_AE)/Count(yyyymmdd)), Round(sum(TD_AF)/Count(yyyymmdd)),
Round(sum(TD_AG)/Count(yyyymmdd)), Round(sum(TD_AH)/Count(yyyymmdd)), Round(sum(TD_AI)/Count(yyyymmdd)), Round(sum(TD_BO)/Count(yyyymmdd)),
Round(sum(TD_BA)/Count(yyyymmdd)), Round(sum(TD_BB)/Count(yyyymmdd)), Round(sum(TD_BC)/Count(yyyymmdd)), Round(sum(TD_BD)/Count(yyyymmdd))
from system.ACCTEST_DS
where
yyyymmdt in to_char(to_date('20070529','yyyymmdd')-(7*1), 'yyyymmdd')
or yyyymmdt in to_char(to_date('20070529','yyyymmdd')-(7*2), 'yyyymmdd')
or yyyymmdt in to_char(to_date('20070529','yyyymmdd')-(7*3), 'yyyymmdd') group by yyyymmdt

음 제가 보기엔 3일을 더해서 합계를 내는것이 아니라
하루 하루의 섬한값의 로우수로 각각 나누는 것을 물어본것 같은데
제가 맞는지 틀린지는 모르겠지만 위의 쿼리는
그룹바이한 3개의 날짜의 값들을 sum해서 각날짜의 로우수로
나누는 쿼리 입니다.

by 허브 [2008.10.21 10:06:46]
호야님 감사합니다. 이제 마음이 좀 편하네요^^;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입