MySql按指定天数进行分组数据统计分析 2

上次的随笔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_logs
12 WHERE
13     YEAR(date)>2013
14 GROUP BY
15     groupNum    

 (转载请注明来源:http://www.cnblogs.com/xpyan/p/3643640.html)

原文地址:https://www.cnblogs.com/xpyan/p/3643640.html