2012-10-22 4 views
0

내가 어린 아이를 (계산) 알아 내야 내가이지난 4 개월 동안 개별적으로 계산 (())?

테이블 stucture이었다 할 수있는 방법을 개별적 마지막 4 개월 동안 개월로 값

CREATE TABLE `lime_survey_16579` ( 
`id` int(11) NOT NULL auto_increment, 
`submitdate` datetime default NULL, 
`lastpage` int(11) default NULL, 
`startlanguage` varchar(20) collate utf8_unicode_ci NOT NULL, 
`token` varchar(36) collate utf8_unicode_ci default NULL, 
`16579X10X31` varchar(5) collate utf8_unicode_ci default NULLPRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=480 ; 

여기 설문 조사 = lime_survey_16579 및 $ 온도 = 16579X10X31 을 $ 여기 16579X10X31은 A1 A2 A3와 같은 값을 ..이 나는이

tot month 

2 july 
4 aug 
6 sep 
9 oct 
같은 출력을 제공 할 수있는 방법

아무도 도와 줄 수 있습니까?

답변

1

모든 데이터는 아래를 시도하십시오 :

SELECT count(id) as tot, MONTHNAME(submitdate) as `month` 
FROM lime_survey_16579 
GROUP BY month(submitdate) 
ORDER BY month(submitdate) 

4 달 지난 위해 데이터를 제한하려면 다음 시도하십시오 :

Sel을의 솔루션 당신이가는 데이터가있는 경우 작동하지 않을
SELECT count(id) as tot, MONTHNAME(submitdate) as `month` 
FROM lime_survey_16579 
GROUP BY month(submitdate) 
ORDER BY month(submitdate) DESC 
LIMIT 4 
0

전년도에 아마도 가장 최근의 "jul"레코드 만 원하고 모든 것을 합치는 것은 아닙니다.

이 들어, 당신은 할 수 있습니다 :

SELECT count(id) as tot, MONTHNAME(submitdate) as `month` 
FROM lime_survey_16579 
GROUP BY monthname(submitdate), year(submitdate) 
ORDER BY min(submitdate) DESC 
LIMIT 4 

선택적뿐만 아니라 SELECT 줄에 해를 둘 수 있었다.

group byorder by 절의 month(submitdate)을 다른 표현식으로 바꿨습니다. 이렇게하면 숨겨진 열이라는 MySQL (mis) 기능을 사용할 수 없으며 group by 절에 언급되지 않고 집계되지 않은 열은 select 절에 허용됩니다. 다른 SQL 엔진 (표준은 물론)은 이것을 허용하지 않습니다.

관련 문제