안녕하세요...
가상테이블로 구현한 쿼리에 Union all 문으로 합계, 평균, 최대, 최소를 표현했습니다.
결과는 나오는데 속도가 떨어져서 문의드립니다. (3초가량 소요됨)
rollup문으로 합계만 적용했을때에는 1초 미만의 결과값이 나옵니다.
예)
with weather1 AS ( SELECT ...
) , minV AS ( SELECT ...
), lynn AS ( SELECT ...
)
SELECT a.dt dt , a.IVC1, a.IVC2, a.IVC3, a.IVC4, a.IVC5, a.IVC6 , a.iv1 ,a.acckwh, a.vir1, a.ir1,a.mt1 FROM lynn a
UNION ALL
SELECT 'Total', sum(a.IVC1), sum(a.IVC2), sum(a.IVC3), sum(a.IVC4), sum(a.IVC5), sum(a.IVC6) , sum(a.iv1) ,sum(a.acckwh), sum(a.vir1), sum(a.ir1),sum(a.mt1) FROM lynn a
UNION ALL
SELECT 'AVG', AVG(a.IVC1), AVG(a.IVC2), AVG(a.IVC3), AVG(a.IVC4), AVG(a.IVC5), AVG(a.IVC6) , AVG(a.iv1) ,AVG(a.acckwh), AVG(a.vir1), AVG(a.ir1),AVG(a.mt1) FROM lynn a
UNION ALL
SELECT 'Max', MAX(a.IVC1), MAX(a.IVC2), MAX(a.IVC3), MAX(a.IVC4), MAX(a.IVC5), MAX(a.IVC6) , MAX(a.iv1) ,MAX(a.acckwh), MAX(a.vir1), MAX(a.ir1),MAX(a.mt1) FROM lynn a
UNION ALL
SELECT 'Min', MIN(a.IVC1), MIN(a.IVC2), MIN(a.IVC3), MIN(a.IVC4), MIN(a.IVC5), MIN(a.IVC6) , MIN(a.iv1) ,MIN(a.acckwh), MIN(a.vir1), MIN(a.ir1),MIN(a.mt1) FROM lynn a
Comment 1
-
맨즈밤
2014.01.03 15:03


lynn 과 SELECT FLAG=1 UNION ALL SELECT FLAG=2 ........... SELECT FLAG=5 이런 더미테이블과 조인한 후에 FLAG 별로
ROLLUP이나 GROUPING SET 하면 비슷한 결과가 나오지 않을까요..
아님 lynn 를 임시테이블에 넣고 그 임시테이블로 최종 조회해보시는것도 테스트 해보세요.