기본 콘텐츠로 건너뛰기

라벨이 누적 합계인 게시물 표시

SQL Cumulative Sum - 누적 합계 산출

1. 누적합계를 구해보자. 기준으로 정렬하고 기준이 증가함에 따라, 그 기준까지의 누적 합계를 구해보자 2. 샘플 데이터를 통해 알아보자. 온라인 매출 샘플 데이터를 아래와 같이 만든다. 1 2 3 4 5 6 7 CREATE TABLE sales_online(id integer, sales integer); INSERT INTO sales_online VALUES ( 1 , 100 ); INSERT INTO sales_online VALUES ( 5 , 170 ); INSERT INTO sales_online VALUES ( 4 , 250 ); INSERT INTO sales_online VALUES ( 2 , 170 ); INSERT INTO sales_online VALUES ( 3 , 250 ); 3. ID를 기준으로 누적합계를 구해보자. - 자신의 id보다 작은 id를 가지는 데이터를 JOIN해야 한다. SELF JOIN을 하되 자신의 id보다 작은 id를 가지는 행을 결합시킨다. 위 로직을 쿼리로 표현하면 아래와 같다. 1 2 3 4 5 6 SELECT * FROM sales_online a JOIN sales_online b ON a.id >= b.id ORDER BY a.id, b.id ; 아래와 같이 자신의 id보다 작은 id를 가지는 행들이 결합되어 있는 것을 확인할 수 있다. 4. 자신의 id를 기준으로 결합시킨 행의 sales를 모두 더한다. 아래와 같이 쿼리를 작성하면 된다. 1 2 3 4 5 6 7 SELECT a.id, a.sales, sum (b.sales) as cul_sum FROM sales_online a JOIN sales_online b ON a.id >= b.id GROUP BY 1 , 2 ORDER BY 1 ;