SUM OVER 집계 함수는 윈도우 함수(Window Function) 중 하나이다.
집계 함수와 차이점은 그룹화되지 않고 행들의 정체성을 유지하여 나타낸다.
사용 방법
SELECT 컬럼1
, 컬럼2
, SUM(누적할 컬럼명) OVER(PARTITION BY 그룹화할 컬럼명 ORDER BY 정렬할 컬럼명 정렬 방식)
FROM [테이블 명]
아래 테이블은 예시 테이블이다.
1. 총합계 구하기
현재 article을 기준으로 행마다 총합을 넣고 싶다고 가정해본다면, 쿼리는 다음과 같다.
SELECT article
, amount
, reg_date
, reg_time
, sum(amount) over(partition by article) as total --파티셔닝하여 총합 구하기
FROM PAYMENT_HISTORY
article을 기준으로 파티셔닝을 하여 총합을 구하게 되면 결과는 다음과 같다.
2. 누적합계 구하기
현재 article을 기준으로 행마다 날짜 기준으로 누적 합을 넣고 싶다고 가정해본다면, 쿼리는 다음과 같다.
SELECT article
, amount
, reg_date
, reg_time
, sum(amount) over(partition by article order by reg_date,reg_time) as total --누적합 구하기
FROM PAYMENT_HISTORY
article을 기준으로 파티셔닝을 하여 날짜 기준으로 누적합을 구하게 되면 결과는 다음과 같다.
'데이터베이스 > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] LEAST,GREATEST를 활용하여 최솟값, 최댓값 찾기 (0) | 2021.12.24 |
---|---|
[PostgreSQL] WITH절 사용하기 (0) | 2021.12.09 |
[PostgreSQL] DB에 존재하는 테이블 명 조회 및 컬럼 조회 (1) | 2021.11.23 |