mysql自定义分组

mysql自定义分组,mysql,sql,database,Mysql,Sql,Database,我有一个审计表,该表在列中创建了一个,需要显示每年的审计次数,但我的客户每年从4月到4月 例如,结果必须显示: 2011/2012 :10 // this is the range between April-2011 to April-2012 2012/2013 :5 // this is the range between April-2012 to April-2013 依此类推……由于分组依据可能包含任意表达式,因此您可以使用一些日期操作,使在值处创建的每个的行为就像是一年的1月至

我有一个审计表,该表在列中创建了一个
,需要显示每年的审计次数,但我的客户每年从4月到4月

例如,结果必须显示:

2011/2012 :10 // this is the range between April-2011 to April-2012
2012/2013 :5  // this is the range between April-2012 to April-2013

依此类推……

由于
分组依据可能包含任意表达式,因此您可以使用一些日期操作,使在
值处创建的每个
的行为就像是一年的1月至12月一样。你可以从中减去3个月,所以4月之后的结果是今年,4月之前的结果是前一年。将该表达式包装在
YEAR()
中,然后将它们按计算值分组

GROUP BY YEAR(created_at - INTERVAL 3 MONTH)
例如,在4月1日当天或之后返回当前年度:

SELECT YEAR('2015-04-01' - INTERVAL 3 MONTH);
+---------------------------------------+
| YEAR('2015-04-01' - INTERVAL 3 MONTH) |
+---------------------------------------+
|                                  2015 |
+---------------------------------------+
和更早的返回上一年的分组:

SELECT YEAR('2015-03-01' - INTERVAL 3 MONTH);
+---------------------------------------+
| YEAR('2015-03-01' - INTERVAL 3 MONTH) |
+---------------------------------------+
|                                  2014 |
+---------------------------------------+

这里有一个小示例:

是否在
创建了一个合适的
日期时间
类型?