반응형
내 테이블 구조는
CREATE TABLE `survey` (
`id` int(11) NOT NULL auto_increment,
`submitdate` datetime default NULL,
`answer` varchar(5) collate utf8_unicode_ci default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=499 ;
이제 지난 10 일 간의 기록을 계산하고 싶습니다. 특정 날짜에 기록이 없다고 가정합니다. 0이어야합니다.
출력은 다음과 같습니다.
date count
19-11-2012 10
18-11-2012 30
13-11-2012 0
.
.
나는 같은 쿼리를 사용했다
SELECT COUNT( * ) , DATE( submitdate )
FROM survey t
WHERE t.submitdate >= ( CURDATE( ) - INTERVAL 10
DAY )
GROUP BY DATE( submitdate )
LIMIT 0 , 30
출력은
count(*) date(submitdate)
1 2012-11-13
2 2012-11-14
1 2012-11-15
3 2012-11-16
6 2012-11-17
날짜가있는 레코드가 없으면 0을 제공하지 않습니다.
해결 방법
이것이 필요한 것입니다.
SELECT days.day, count(survey.id)
FROM
(select curdate() as day
union select curdate() - interval 1 day
union select curdate() - interval 2 day
union select curdate() - interval 3 day
union select curdate() - interval 4 day
union select curdate() - interval 5 day
union select curdate() - interval 6 day
union select curdate() - interval 7 day
union select curdate() - interval 8 day
union select curdate() - interval 9 day) days
left join survey
on days.day = survey.submitdate
group by
days.day
(submitdate가 날짜와 시간을 포함하는 경우 on days.day = survey.submitdate
줄을 on days.day = DATE (survey.submitdate)
로 대체해야합니다.)
참조 페이지 https://stackoverflow.com/questions/13443165
반응형
'MySql' 카테고리의 다른 글
MySQL php / mysql의 아랍어가 "????"로 나타납니다. html의 물음표 (0) | 2021.01.19 |
---|---|
MySQL mysql과 jdbc를 연결하기 위해 클래스 경로를 설정하십시오. (0) | 2021.01.19 |
MySQL Fixing broken UTF-8 encoding (0) | 2021.01.19 |
MySQL 날짜와 함께보다 큼 연산자를 사용하는 방법은 무엇입니까? (0) | 2021.01.19 |
MySQL PHP mysql Group By는 첫 번째 레코드가 아닌 최신 레코드를 얻습니다. (0) | 2021.01.19 |
댓글