[MySql] 특정 기간 일별 합계 0 2 1,207

by 잼따군 [2017.03.15 12:00:51]


특정 기간 ( 약 1년정도) 동안 일별로 나오는 데이터들의 카운트를 구하려고 합니다

데이터가 한 30-40초 에 한 로우씩 쌓이는(쌓일때도 있고 안나올때도 있어요) 데이터를 가지고..(엄청 많은 데이터입니다)

로우카운트를 세어서.

일/월   1월  2월  3월  4월

 1일      0    10   200   30

 2일     10    0     0    0

 3일

 

뭐 요런식으로 데이터를 뽑고 싶은데요 이런것도 가능 할까요?

일별데이터를 월별 컬럼으로 잘라내는 것도 쉽지않고 데이터가 없는 날짜에 0을 집어넣는것도 힘드네요.

원체 잘하지도 못하는 쿼리를 익숙하지도 않은 mysql로 짜려고 하니까 더힘드네요..

고수님들 도움좀 부탁드려요

by 마농 [2017.03.15 13:51:45]
SELECT d
     , COUNT(CASE m WHEN '01' THEN 1 END) "01"
     , COUNT(CASE m WHEN '02' THEN 1 END) "02"
     , COUNT(CASE m WHEN '03' THEN 1 END) "03"
     , COUNT(CASE m WHEN '04' THEN 1 END) "04"
     , COUNT(CASE m WHEN '05' THEN 1 END) "05"
     , COUNT(CASE m WHEN '06' THEN 1 END) "06"
     , COUNT(CASE m WHEN '07' THEN 1 END) "07"
     , COUNT(CASE m WHEN '08' THEN 1 END) "08"
     , COUNT(CASE m WHEN '09' THEN 1 END) "09"
     , COUNT(CASE m WHEN '10' THEN 1 END) "10"
     , COUNT(CASE m WHEN '11' THEN 1 END) "11"
     , COUNT(CASE m WHEN '12' THEN 1 END) "12"
  FROM (SELECT DATE_FORMAT(dt, '%m') m
             , DATE_FORMAT(dt, '%d') d
          FROM t
         WHERE dt >= '2017-01-01'
           AND dt <  '2018-01-01'
        ) a
 GROUP BY d
;

 


by 잼따군 [2017.03.15 14:05:41]

감사합니다.. 월별로 데이터 뽑아서 조인걸었는데 이런방법이있네요..

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