Posts [SQLD] PARTITION BY 이용해서 누적 합계 구하기
Post
Cancel

[SQLD] PARTITION BY 이용해서 누적 합계 구하기

PARTITION BY

PARTITION BY 절에 ORDER BY 를 사용하면 누적 합계를 표시한다.

예시

아래와 같은 테이블이 있다고 해보자.

사원번호이름부서코드급여
101Alicemkt3000
102Bobmkt4000
103Charliehrd3500
104Davidmkt5000
105Evehrd4500
1
2
3
4
SELECT 사원번호, 이름, 부서코드, 급여,
       SUM(급여) OVER (PARTITION BY 부서코드 ORDER BY 사원번호) AS 부서급여합
FROM 직원
WHERE 부서코드 IN ('mkt', 'hrd');

위의 쿼리 실행 결과는 아래와 같다.

사원번호이름부서코드급여부서급여합
103Charliehrd35003500
105Evehrd45008000
101Alicemkt30003000
102Bobmkt40007000
104Davidmkt500012000

ORDER BY 를 사용하지 않으면 그룹의 전체 합계를 표시한다.

1
2
3
4
SELECT 사원번호, 이름, 부서코드, 급여,
       SUM(급여) OVER (PARTITION BY 부서코드) AS 부서급여합
FROM 직원
WHERE 부서코드 IN ('mkt', 'hrd');
사원번호이름부서코드급여부서급여합
103Charliehrd35008000
105Evehrd45008000
104Davidmkt500012000
102Bobmkt400012000
101Alicemkt300012000

참고자료

This post is licensed under CC BY 4.0 by the author.

[SQLD] 정규화, 비정규화, 정규형(1~5)

[GitHub Actions] cron 비활성화 자동으로 막기 (keepalive workflow)