2010년 4월 10일 토요일

오라클 누적 데이터 select

<원본 데이터 >

MSG_ID BASE_AMT
====================

205117 1400
423266 1000
423267 1000
423268 1000
891138 1400
891139 1000

<누적 합계>

MSG_ID BASE_AMT 누적합계

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

205117 1400 1400
423266 1000 2400
423267 1000 3400
423268 1000 4400
891138 1400 5800
891139 1000 6800

위와 같은 결과를 얻고 싶을 때, 다음과 같은 방법으로 select한다.

 

   select  msg_id,  base_amt,
   sum(base_amt) over(order by msg_id rows between unbounded preceding and current row) 
   from cdr_data
   where   subscr_no = 228377;

댓글 없음:

댓글 쓰기