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)

你可能感兴趣的:(mysql)