ORACLE/SQL2009. 6. 12. 16:35
반응형
--/// 누적 예제 ///--
create table baljeon
(balday date, balyang number) tablespace users;

insert into baljeon values('2007-02-01',30);
insert into baljeon values('2007-02-02',25);
insert into baljeon values('2007-02-03',20);
insert into baljeon values('2007-02-04',15);
insert into baljeon values('2007-02-05',10);

--/// 날짜별 순차적인 누적량을 구하기 위해선 더해야할 행수는 해당 테이블의 총행수(count값)을 넣어주면된다.
--/// 또는 rows 부터 그이하를 생략하면 된다.
select count(*) from baljeon;

select balday "발전일자", balyang "발전량",
    sum(balyang) over(order by balday) "누적량"
from baljeon;
-----------------------------------------------------------------------------------------
insert into baljeon values('2007-03-01',10);
insert into baljeon values('2007-03-02',20);
insert into baljeon values('2007-03-03',30);
insert into baljeon values('2007-03-04',40);
insert into baljeon values('2007-03-05',50);
-----------------------------------------------------------------------------------------
select * from baljeon;

select balday "발전일자", balyang "발전량",
    sum(balyang) over(partition by to_char(balday,'yyyy-mm') order by balday) "누적량"
    -- partition by to_char(balday,'yyyy-mm') 원하는 날짜별로 누계를 구한다.
from baljeon;
반응형

'ORACLE > SQL' 카테고리의 다른 글

CUBE 함수  (0) 2009.07.08
ROLLUP 함수  (0) 2009.07.08
Oracle 관리 및 SQL Plus 정리  (0) 2009.06.10
ORACLE START WITH, CONNECT BY  (3) 2009.04.02
SQL 실행순서  (0) 2009.02.24
Posted by [PineTree]