
select sum(sal)
from emp;
select ename, sal, sum(sal) over ()
from emp;
over: 확장해서 출력하라
-- 약식
select ename, sal, sum(sal) over (order by empno asc) as 누적치
from emp;
-- 정식
select ename, sal, sum(sal) over (order by empno asc rows
between unbounded preceding
and current row) as 누적치
from emp;
unbounded preceding: 제일 첫번째행
unbounded following: 제일 마지막번째 행
current row: 현재행
select ename, age, sum(age) over ( order by age asc rows
between unbounded preceding
and current row) 누적치
from emp21;
select telecom, ename, age, sum(age) over ( partition by telecom
order by age asc rows
between unbounded preceding
and current row) 누적치
from emp21;
select deptno, ename, sal, sum(sal) over ( partition by deptno
order by sal asc rows
between unbounded preceding
and current row) 누적치
from emp;
💡
rows: 행을 기준으로 누적치를 구하는 것
range: 범위를 기준으로 누적치를 구하는 것
-- * 범위(range) 를 기준으로 range 윈도우 기준을 테스트하기
--1. emp 테이블을 부서번호를 ascending 하게 정렬한 결과로 emp2 테이블 생성하기
drop table emp2;
create table emp2
as
select *
from emp
order by deptno asc;
select * from emp2;
--2. emp2 테이블의 사원들의 입사일을 부서번호별로 각각 다음과 같이 변경하시오
update emp2
set hiredate='81/01/05'
where deptno = 10;
update emp2
set hiredate='81/02/17'
where deptno = 20;
update emp2
set hiredate='81/03/21'
where deptno = 30;
commit;
select * from emp2;
select ename, hiredate, sal,
sum(sal) over ( order by hiredate asc rows
between unbounded preceding
and current row) 누적치
from emp2;

select ename, hiredate, sal,
sum(sal) over ( order by hiredate asc range
between unbounded preceding
and current row) 누적치
from emp2;
