2009. 3. 14. 03:18 Program.../Oracle
Oracle sum() over() - 누적계산
--/// 누적 예제 ///--
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;
'Program... > Oracle' 카테고리의 다른 글
Oracle 서브상관쿼리, exists, not exists (0) | 2009.03.14 |
---|---|
Oracle 서브쿼리(SubQuery) (0) | 2009.03.14 |
Oracle cross join, natural join, using 절 (0) | 2009.03.14 |
Oracle 다중 테이블로부터의 데이타 검색 (0) | 2009.03.14 |
Oracle All 함수 (0) | 2009.03.14 |