Mysql SQL返回从上周一开始的过去12周数据,按周分组

Mysql SQL返回从上周一开始的过去12周数据,按周分组,mysql,sql,sorting,date,Mysql,Sql,Sorting,Date,我一直在做一个MySQL查询,它将数据按周排序,但我就是不知道怎么做 我想将当前和过去11周的数据分为几周。每周从周一00:00:00到周日23:59:59 以今天的日期为2014-12-04 第1周:2014-12-01>2014-12-07-上周一00:00:00至下周日23:59:59 第2周:2014-11-24>2014-11-30-最后一个星期日之前的星期一00:00:00至最后一个星期日23:59:59 第3周:2014-11-17>2014-11-23-上一周前的周一00:00:

我一直在做一个MySQL查询,它将数据按周排序,但我就是不知道怎么做

我想将当前和过去11周的数据分为几周。每周从周一00:00:00到周日23:59:59

以今天的日期为2014-12-04

第1周:2014-12-01>2014-12-07-上周一00:00:00至下周日23:59:59

第2周:2014-11-24>2014-11-30-最后一个星期日之前的星期一00:00:00至最后一个星期日23:59:59

第3周:2014-11-17>2014-11-23-上一周前的周一00:00:00至上周日23:59:59

等等

每周将汇总值字段数据

我需要以以下格式返回数据:

datetime:第一次约会总是在该周的星期一

值:该周所有值的总和

例如,返回的数据:

第1周:2014-12-01:总价值=11

第2周:2014-11-24:总价值=3

第3周:2014-11-17:总价值=9

第4周:2014-11-10:总价值=7

表1数据:

table1id  datetime               value
1         2014-09-01 06:00:00    4
2         2014-09-04 17:00:00    6

3         2014-09-09 18:00:00    9

4         2014-09-15 07:00:00    4
5         2014-09-20 10:00:00    2

6         2014-09-25 10:00:00    3

7         2014-09-30 09:00:00    8
8         2014-10-01 14:00:00    5
9         2014-10-05 10:00:00    7

10        2014-10-09 18:00:00    3

11        2014-10-15 05:00:00    4

12        2014-10-20 07:00:00    8
13        2014-10-24 16:00:00    9

14        2014-10-29 15:00:00    5
15        2014-10-31 16:00:00    7

16        2014-11-05 09:00:00    2

17        2014-11-10 08:00:00    4
18        2014-11-15 16:00:00    3

19        2014-11-20 10:00:00    9

20        2014-11-25 10:00:00    2
21        2014-11-30 10:00:00    1

22        2014-12-01 15:00:00    7
23        2014-12-04 18:00:00    2
我“可以”使用PHP提取日期范围内所有未排序的数据,并从中进行排序,但我宁愿由MySQL服务器进行排序

如有任何建议,将不胜感激-

基于 你可以这样做:

select mondays.week, mondays.day, sum(value)
from
    (select a.a+1 week, curdate() - WEEKDAY(curdate()) - INTERVAL (7*a.a) DAY as day from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9 union all select 10 union all select 11) as a) as mondays,
    Table_1
where Table_1.datetime between mondays.day and (mondays.day + interval(7) day)
group by mondays.week, mondays.day;

请更新您的文章,以了解您迄今为止所做的尝试。