원본테이블
AccDate Time Level1 Level2
----------------------------
03-03-01 00 1 0
03-03-01 02 0 1
03-03-01 04 1 1
03-03-02 00 1 0
03-03-02 02 1 0
03-03-03 00 0 1
Select AccDate, AVG(Level1)
From rpt2003
Where (Level1 > 0)
Group By AccDate
Having AccDate LIKE '03-03%'
결과
AccDate Level1
----------------------
03-03-01 AVG
03-03-02 AVG
03-03-03 AVG
Select AccDate, AVG(Level2)
From rpt2003
Where (Level2 > 0)
Group By AccDate
Having AccDate LIKE '03-03%'
결과
AccDate Level2
----------------------
03-03-01 AVG
03-03-02 AVG
03-03-03 AVG
위의 두Select문을 한 테이블로 만들려구 합니다.
두번 검색한 이유는 Where 절 때문이거든요.
0인 값은 평균값에서 제외됩니다.
초보라서 고수님들 부탁좀 드립니다.
훔. 어떤 결과를 원하시는지 잘 몰라서 그냥 나름대로 해 보았습니다. ^^;;
create table tmp(
accdate varchar2(10)
time varchar2(2)
level1 number
level2 number
);
insert into tmp values('03-03-01', '00', 1, 0 );
insert into tmp values('03-03-01', '02', 0, 1 );
insert into tmp values('03-03-01', '04', 1, 1 );
insert into tmp values('03-03-02', '00', 1, 0 );
insert into tmp values('03-03-02', '02', 1, 0 );
insert into tmp values('03-03-03', '00', 0, 1 );
SELECT ACCDATE
, AVG(DECODE(LEVEL1, 0, NULL, LEVEL1)) A
, AVG(DECODE(LEVEL2, 0, NULL, LEVEL2)) B
FROM TMP
WHERE ACCDATE LIKE '03-03%'
GROUP BY ACCDATE
만약 이런 결과를 얻는 것이 아니라면..
머 그냥 UNION ALL로 해결이 가능하실것 같네요. ^^
그럼. 수고하세여. ~