sqld, sqlp 2과목의 단골 문제죠~~
간단한 예제로 직접 해보면 이해하기 쉽습니다.
먼저 사전에 emp, dept 테이블이 없으시면 아래 링크로 가서 생성하시고, 실습하시면 됩니다.
1. dept, emp 테이블 생성
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. 실행결과
'# 데이터베이스 > 오라클' 카테고리의 다른 글
[ORACLE] Direct Path Insert (0) | 2023.07.27 |
---|---|
[ORACLE] 데이터베이스 CALL이 성능에 미치는 영향 테스트 (0) | 2023.07.26 |
[ORACLE] emp, dept 테이블 생성 스크립트 (0) | 2023.02.22 |
[ORACLE] 21C에서 사용자 계정 생성하기 (0) | 2023.02.15 |
[ORACLE] 바인드 변수의 중요성 (0) | 2023.01.09 |