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即可。
 SELECT
job_id AS jobID,
SUM(count)AS totalNum,
COUNT(job_id)AS countNum,
(
YEAR(date)* 1000 +(
DAYOFYEAR(date)+11 - MOD(DAYOFYEAR(CURDATE()) ,11)
)DIV 11
)AS groupNum
FROM
job_logs
WHERE
YEAR(date)>2013
GROUP BY
groupNum

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

上一篇:Mysql中limit的用法详解


下一篇:vector,list和deque区别