create table month_sales
as
select deptno as "지점"
, row_number() over (partition by deptno order by empno) as "판매월"
, round(dbms_random.value(500, 1000)) as "매출"
from emp
order by deptno
;
-- 테이블 조회
select *
from month_sales
;
지점 판매월 매출
---------- ---------- ----------
10 1 895
10 2 560
10 3 551
20 1 948
20 2 992
20 3 852
20 4 950
20 5 836
30 1 871
30 2 681
30 3 993
30 4 518
30 5 551
30 6 846
select "지점", "판매월", "매출"
, sum("매출") over (partition by "지점" order by "판매월"
range between unbounded preceding and current row
) as "누적매출"
5 from month_sales
6 ;
지점 판매월 매출 누적매출
---------- ---------- ---------- ----------
10 1 895 895
10 2 560 1455
10 3 551 2006
20 1 948 948
20 2 992 1940
20 3 852 2792
20 4 950 3742
20 5 836 4578
30 1 871 871
30 2 681 1552
30 3 993 2545
30 4 518 3063
30 5 551 3614
30 6 846 4460
select t1."지점", t1."판매월", min(t1."매출") as 매출, sum(t2."매출") as 누적매출
from month_sales t1, month_sales t2
where t2."지점" = t1."지점"
and t2."판매월" <= t1.판매월
group by t1."지점", t1."판매월"
order by t1."지점", t1."판매월"
;
지점 판매월 매출 누적매출
---------- ---------- ---------- ----------
10 1 895 895
10 2 560 1455
10 3 551 2006
20 1 948 948
20 2 992 1940
20 3 852 2792
20 4 950 3742
20 5 836 4578
30 1 871 871
30 2 681 1552
30 3 993 2545
30 4 518 3063
30 5 551 3614
30 6 846 4460
- 강좌 URL : http://www.gurubee.net/lecture/4431
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.