Development/DB

집계함수 안에서 조건 부여

루루지 2022. 8. 31. 12:17
반응형

SUM, COUNT 등으로 통계를 산출할때 CASE WHEN 을 활용하여 쉽게 산출할 수 있다.

 

ex) 월별로 포인트 적립 카운트, 사용 카운트, 누적 적립 금액, 누적 사용 금액 산출

SELECT DATE_FORMAT(P.REG_TSP, '%Y.%m') AS DT
       ,COUNT(CASE WHEN P.TYPE = 'ACC' THEN 1 END) AS ACC_CNT
       ,COUNT(CASE WHEN P.TYPE = 'USE' THEN 1 END) AS USE_CNT 
       ,SUM(CASE WHEN P.TYPE = 'ACC' THEN P.VALUE END) AS ACC_SUM
       ,SUM(CASE WHEN P.TYPE = 'USE' THEN P.VALUE END) AS USE_SUM
       FROM POINT P
    WHERE P.STATE = 1
    GROUP BY DT;