728x90
반응형

select dept_cd, sum(sale_qty) total,
  sum(decode(substr(yymm, 7, 2), '01', sale_qty)) s_01,
  sum(decode(substr(yymm, 7, 2), '02', sale_qty)) s_02
from sale
where yymm = '0202'
  and saup = '0202'
group by dept_cd;

============================================

==> 이런식으로 바꾸는 것이 속도에 유리하다..

============================================

select dept_cd, sum(s_qty) total,
 sum(decode(dd, '01', s_qty)) s_01,
 sum(decode(dd, '02', s_qty)) s_02
from
    (
 select dept_cd, substr(yymm, 7, 2) dd, sum(sale_qty) s_qty
 from sale
 where yymm = '2002'
 and saup = '0202'
 group by dept_cd, substr(yymm, 7, 2)
 )
group by dept_cd

 


 

substr이 group by 내에서 수행함으로써 10,000회로 감소하였다. 또한 수행결과의 집합이

물리적으로 저장되었으므로 외부에 있는 select에서는 substr을 사용하지 않고 상수값 'dd'를

이용해 비교할 수 있게 되었다.

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,