# 데이터베이스/오라클

[ORACLE] 월별 누적 매출 예제

dev-jjong 2023. 2. 22. 15:03

sqld, sqlp 2과목의 단골 문제죠~~

간단한 예제로 직접 해보면 이해하기 쉽습니다.

먼저 사전에 emp, dept 테이블이 없으시면 아래 링크로 가서 생성하시고, 실습하시면 됩니다.

 

1. dept, emp 테이블 생성

https://java7.tistory.com/164

 

 

2. 월별 누적 매출 예제

create table 월별지점매출
as
select deptno "지점"
     , row_number() over (partition by deptno order by empno) "판매월"
     , round(dbms_random.value(500, 1000)) "매출"
  from emp
 order by deptno;
 
select * from 월별지점매출;


-- 분석함수 이용
select 지점, 판매월, 매출
     , sum(매출) over(partition by 지점 order by 판매월 range between unbounded preceding and current row) 누적매출
  from 월별지점매출;
  
  
-- 조인 이용
select t1.지점, t1.판매월, min(t1.매출) 매출, sum(t2.매출) 누적매출
  from 월별지점매출 t1, 월별지점매출 t2
 where t2.지점 = t1.지점
   and t2.판매월 <= t1.판매월
 group by t1.지점, t1.판매월
 order by t1.지점, t1.판매월

 

3. 실행결과