데이터베이스 개발자 질문과 답변 게시판
안녕하세요...
가상테이블로 구현한 쿼리에 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 를 임시테이블에 넣고 그 임시테이블로 최종 조회해보시는것도 테스트 해보세요.