2013-02-21 202 views
0

組日期假設我有類似下面的表格:只月份和年份

id | assignment | duedate 
1 | Math  | 2012-01-01 
2 | History | 2012-02-02 
3 | Science | 2012-01-01 
4 | Government | 2012-02-01 
5 | Government | 2013-01-13 
6 | History | 2013-03-13 

是否有可能使一些SQL查詢,使得我得到月份和年份的所有日期的分組?有一些可能性,我能得到的排序結果:

duedatemonth | count 
January 2012 | 2 
Feburary 2012 | 2 
January 2013 | 1 
March 2013 | 1 

我知道你可以GROUP BY交貨期,但只有團的那些同月,日和年而不是隻月份和年份。

難道是然後可能甚至它使得它因素「分配」,以獲得所得

id | duedatemonth | count 
1 | January 2012 | 2 
3 | January 2012 | 2 
2 | Feburary 2012 | 2 
4 | Feburary 2012 | 2 
5 | January 2013 | 1 
6 | March 2013 | 1 

回答

0

試試這個

SELECT DATE_FORMAT(duedate,'%M %Y') duedatemonth, COUNT(*) count 
    FROM Table1 
    GROUP BY year(duedate), MONTH(duedate) 

DEMO HERE

將輸出這樣的:

DUEDATEMONTH  COUNT 
    January 2012  2 
    February 2012  2 
    January 2013  1 
    March 2013  1 
0

使用的表中的字符串函數YEARMONTH進一步組。

SELECT YEAR(duedate), MONTH(duedate), COUNT(*) 
FROM sparkles 
GROUP BY YEAR(duedate), MONTH(duedate) 

使用MONTHNAMEDATE_FORMAT獲得該月的名稱。

0

您可以使用此查詢。

SELECT DATE_FORMAT(duedate, '%M %Y') duedatemonth, COUNT(1) `count` 
FROM Tbl 
GROUP BY DATE_FORMAT(duedate, '%M %Y')