上次的随笔1中写的分组方式,经分析,是从前往后进行分组,即若选择2014的数据进行统计每11天为一组的话,1的分组方式,
按照2014-01-01——2014-01-11为一组,之后每11天为一组。
但如果想按以最近11天为一组的话,就要使用下面的SQL进行查询,
SQL中的关键是groupNum的获取,YEAR(date)* 1000 为区分年份;
( DAYOFYEAR(date)+ 11 - MOD(DAYOFYEAR(CURDATE()) ,11)) DIV 11 下划线部分为增加的偏移量,以满足按照最近11天进行分组
注:按照上面的表达式计算出的groupNum进行分组,是不包含当天进行的统计,如果想要包括当天的数据,则下划线部分的值减1即可。
1 SELECT 2 job_id AS jobID, 3 SUM(count)AS totalNum, 4 COUNT(job_id)AS countNum, 5 ( 6 YEAR(date)* 1000 +( 7 DAYOFYEAR(date)+11 - MOD(DAYOFYEAR(CURDATE()) ,11) 8 )DIV 11 9 )AS groupNum 10 FROM 11 job_statistics 12 WHERE 13 YEAR(date)>2013 14 GROUP BY 15 groupNum
(转载请注明来源:http://www.cnblogs.com/xpyan/p/3643640.html)