티끌모아 개발

[oracle] COUNT 말고 원하는 조건값의 갯수를 셀 수 있는 방법 'CASE' 본문

oracle

[oracle] COUNT 말고 원하는 조건값의 갯수를 셀 수 있는 방법 'CASE'

JKimKorea 2021. 5. 20. 09:23

ORD_RECV_LOG 테이블에서 PRCS_STAT_CD'S'일 때 값을 1로 지정하고 아닐 때 0으로 돌려주어

이 값을 SUM으로 합하면 된다.

 

SELECT         RECV_DT
                  , ORD_DT
                  , SUM(CASE WHEN PRCS_STAT_CD = 'S' THEN 1 ELSE 0 END) AS ORD_CNT
                  , SUM(CASE WHEN PRCS_STAT_CD = 'E' THEN 1 ELSE 0 END) AS ERR_CNT
                  , MAX(RGST_DTTM) AS RGST_DTT

  FROM         ORD_RECV_LOG
  WHERE        RECV_DT BETWEEN '20210501' AND '20210520'
  GROUP BY    RECV_DT
                  , ORD_DT
  ORDER BY    RECV_DT DESC
                  , ORD_DT DESC;