maria 주별 데이터 0 3 1,417

by db초보 [MySQL] maria db [2017.06.15 13:33:35]


주별로 데이터를 뽑을려고 하는데 쿼리를 어떻게 짜야되는지 몰르겠습니다.

사용자가 6월1일~6월15일까지 데이터를 보여주고 싶어할때 밑에처럼 데이터가 나오게 하고 싶습니다.

일자 건수
17.06.01(목)~17.06.03(토) 1000
17.06.04(일)~17.06.10(토) 1001
17.06.11(일)~17.06.15(목) 1002

위에 보시면 알겠지만 한주씩 끊어져서 데이터가 보여집니다

달력을 보시면 6월1일은 목요일이라서 목~토요일까지 데이터가 나온거고

2번째주는 일~토요일까지 다 포함되서 데이터가 다 나오고

3번째주는 마지막검색일 15일(목)이라서 목요일까지 데이터가 나옵니다.

 

by 마농 [2017.06.15 14:15:25]
SELECT DATE_FORMAT(MIN(dt), '%Y-%m-%d(%a)') s
     , DATE_FORMAT(MAX(dt), '%Y-%m-%d(%a)') e
     , COUNT(*) cnt
  FROM (SELECT DATE_ADD('2017-01-01', INTERVAL seq - 1 DAY) dt FROM seq_1_to_365) a
 WHERE dt BETWEEN '2017-06-01' AND '2017-06-15'
 GROUP BY YEARWEEK(dt, 6)
 ORDER BY YEARWEEK(dt, 6)
;

 


by db초보 [2017.06.15 14:34:54]

SELECT DATE_ADD('2017-01-01', INTERVAL seq - 1 DAY) dt FROM seq_1_to_365

위에 부분이 이해가 안되요

그러니깐 위에 seq를 필드이름쓰면 되고 from뒤에 seq_1_to_365을 테이블명으로 수정을 해서 돌려봤는데 밑에처럼 데이터가 나오더라고요

제가 잘못고친건가요??

테이블에 데이터는 8개가 있어서 null이 8번 나온것 같은데..

dt
null
null
null
null
null
null
null
null

 


by 마농 [2017.06.15 15:11:17]

seq_1_to_365 를 테이블명으로 고치시는게 아닙니다.
서브쿼리 자체는 제가 임의로 테스트 해보기 위해 사용한 것입니다.
서브쿼리를 통째로 테이블명으로 고치세요.

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