반응형
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 |
반응형
'개발 > Mysql' 카테고리의 다른 글
[Mysql] group by 없는 시간 및 날짜 표시하기 (0) | 2021.06.01 |
---|---|
[Mysql] source 여러개 파일 import 한번에 하기 (0) | 2021.03.22 |
[Mysql] 그룹별 누적 카운트 합계 (0) | 2020.08.13 |
[Mysql] update join 쿼리 (0) | 2020.08.06 |
[Mysql] SQL 오류 (1690): BIGINT UNSIGNED value is out of range in 에러 발생시 (0) | 2020.07.20 |