반응형

Mysql 에서 그룹별 누적 합계 구하는 방법이다.

 

각 ID 별로 그룹을 지어주고, 그룹별로 누적 합계를 구하는 방법이다.

SET sql_mode = '';
SELECT T.SEQ,T.DT_GEN,T.ID,T.NAME,T.cnt,
    SUM(T.cnt) OVER(PARTITION BY T.ID ORDER BY T.SEQ) AS sumCnt
FROM(
    SELECT 
        ROW_NUMBER() OVER() AS SEQ,
        DT_GEN,
        ID,
        NAME,
        SUM(val1) AS cnt
	FROM TEST_TBL 
    GROUP BY DT_GEN, A.ID
	ORDER BY DT_GEN DESC
) T
ORDER BY T.DT_GEN DESC;

 

위와 같은 쿼리를 실행하면 예를 들어 아래와 같이 결과가 나온다.

때에 따라서 group by 할 항목과,  SUM할 항목, 등등 변경하여서 사용하면 된다.

 

SEQ DT_GEN ID NAME cnt sumCnt
5 20200728 15 김삿갓 4 5
4 20200728 11 홍길동 3 10
3 20200727 15 김삿갓 1 1
2 20200727 11 홍길동 5 7
1 20200721 11 홍길동 2 2
반응형

+ Recent posts