只月份和年份

问题描述:

组日期假设我有类似下面的表格:只月份和年份

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 

试试这个

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 

使用的表中的字符串函数YEARMONTH进一步组。

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

使用MONTHNAMEDATE_FORMAT获得该月的名称。

您可以使用此查询。

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