하이드이무니다
150
2021-12-20 11:34:56
3
249

mysql 카운트 합계하는 방법에 대한 질문입니다..



SELECT DATE_FORMAT(REG_DTIME, '%y-%m') AS 년월, COUNT(REG_DTIME) AS 카운트 FROM AUTHOR GROUP BY 년월 ORDER BY 년월 ASC;

위와 같은 쿼리인데

매 row마다 카운트가 누적되어 total을 뽑고 싶습니다

예를 들어

    년월      카운트     합계

1.17-12        15          15

2.18-01         3            18


방법이 없을까요?


0
  • 답변 3

  • youngyoung
    2k
    2021-12-20 12:09:33

    https://ubiq.co/database-blog/how-to-calculate-running-total-in-mysql/

  • 캐티
    6k
    2021-12-20 12:59:08

    프로시저를 써야 하빈다.
    그렇지 않으면 LEFT JOIN 통해서 누적을 해줄 수 있을것 같습니다.

    SET @tmp = 0;
    
    SELECT
    	DATE_FORMAT(REG_DTIME, '%y-%m') AS 년월,
        COUNT(REG_DTIME) AS 카운트,
        @tmp = SUM(REG_VALUE) + @tmp AS 합계
    
    	FROM AUTHOR
        GROUP BY 년월
        ORDER BY 년월 ASC;
  • 무명시민
    142
    2021-12-21 08:56:04 작성 2021-12-21 08:59:45 수정됨

     SELECT DATE_FORMAT(REG_DTIME, '%y-%m') AS 년월

          , COUNT(REG_DTIME) AS 카운트

          , SUM(COUNT(REG_DTIME)) OVER(ORDER BY DATE_FORMAT(REG_DTIME, '%y-%m')) AS TOT

       FROM AUTHOR 

      GROUP BY 년월 

      ORDER BY 년월 ASC

    ;

  • 로그인을 하시면 답변을 등록할 수 있습니다.