서브쿼리 안에서 self join 속도 향상 방법 질문 0 0 991

by ksbgenius [2015.08.06 17:19:03]


SELECT length
     , MIN(dt) dt
     , MAX(v1) v1
     , MAX(v2) v2
     , MAX(v3) v3
     , MAX(v4) v4
     , AVG(CASE WHEN rn <= 5 THEN v3 END) avg5_v3_asc
     , AVG(CASE WHEN cnt - rn < 5 THEN v3 END) avg5_v3_desc
  FROM (SELECT m.length, m.dt
             , m.v1, m.v2, m.v3, m.v4
             , COUNT(CASE WHEN m.dt >= s.dt THEN 1 END) rn
             , COUNT(*) cnt
          FROM cams_data m
             , cams_data s
         WHERE m.vcode = 'TTest7'
           AND m.wdate = '20150625'
           AND m.vcode  = s.vcode
           AND m.wdate  = s.wdate
           AND m.length = s.length
        -- AND m.dt    >= s.dt
         GROUP BY m.length, m.dt
             , m.v1, m.v2, m.v3, m.v4
       ) a
 GROUP BY length
;

데이터가 2500개 정도 되면 몇분씩 걸리는데, 좀더 빠른 방법이 없을까요..

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입