COUNT 조건절 처리 방법 문의 1 2 2,713

by 마카로 [SQL Query] COUNT [2014.07.02 11:20:45]


TO_CHAR(SYSDATE,'YYMMDD24MISS')||시퀀스 가 키가 되는 테이블이 있습니다.

시간 + 시퀀스가 키가되는 값이죠

날짜별로 그룹을 만들어서 성공건과 실패건을 분류 하려고 하는데요

Code(SELECT TO_CHAR( CREATION_DATE,'YYYY-MM-DD' ) AS DATE_CNT

             ,COUNT(1) CNT

FROM TABLE_NAME

WHERE DATE_SEQ >= TO_CHAR(SYSDATE -15, 'YYYYMMDD' )||'00000000'

     AND  DATE_SEQ <= TO_CHAR(SYSDATE , 'YYYYMMDD' )||'99999999'

GROUP BY TO_CHAR( CREATION_DATE,'YYYY-MM-DD' )

 )

이렇게 하면 총건수 인데..

성공이나 실패 건수에 대한 건은 처리시간 + 처리완료 가 들어가서

 

SELECT TO_CHAR( CREATION_DATE,'YYYY-MM-DD' ) AS DATE_CNT

,COUNT(1) CNT

FROM TABLE_NAME

WHERE DATE_SEQ >= TO_CHAR(SYSDATE -15, 'YYYYMMDD' )||'00000000'

AND DATE_SEQ <= TO_CHAR(SYSDATE , 'YYYYMMDD' )||'99999999'

AND REASOM_COL LIKE '%처리완료%'

GROUP BY TO_CHAR( CREATION_DATE,'YYYY-MM-DD' )

 

SELECT TO_CHAR( CREATION_DATE,'YYYY-MM-DD' ) AS DATE_CNT

,COUNT(1) CNT

FROM TABLE_NAME

WHERE DATE_SEQ >= TO_CHAR(SYSDATE -15, 'YYYYMMDD' )||'00000000'

AND DATE_SEQ <= TO_CHAR(SYSDATE , 'YYYYMMDD' )||'99999999'

AND REASOM_COL LIKE '%처리중%'

 

인데.. 이 세개를 간단하게 표한할수 있는 방법이 없을까요??

by DarkBee [2014.07.02 12:23:50]
SELECT TO_CHAR ( creation_date, 'YYYY-MM-DD' )        AS DATE_CNT
     , COUNT(1)                                       AS CNT
     , COUNT ( CASE WHEN REASOM_COL LIKE '%처리완료%' 
                    THEN 1
               END
       )                                              AS prcs_end_cnt
     , COUNT ( CASE WHEN REASOM_COL LIKE '%처리중%' 
                    THEN 1
               END
       )                                              AS prcs_ing_cnt
  FROM table_name
 WHERE date_seq >= TO_CHAR ( SYSDATE -15, 'YYYYMMDD' ) || '00000000'
   AND date_seq <= TO_CHAR ( SYSDATE    , 'YYYYMMDD' ) || '99999999'

GROUP BY TO_CHAR ( creation_date, 'YYYY-MM-DD' )

 


by 마카로 [2014.07.02 13:10:32]

감사합니다.^^*

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입