我的表:
id - value - time
0 - 15 - 21.09.13
1 - 22 - 22.09.13
2 - 11 - 23.09.13
3 - 17 - 24.09.13
...
我想从上周获得平均值。但不仅仅是一个。我需要所有周的平均值。 我试图做这样的事情:
SELECT AVG(value)
FROM table
WHERE time BETWEEN date_sub(now(), INTERVAL 8 DAY) AND NOW();
但它只返回一行。 它应该返回这样的东西:
AVG(value)
25 //first week
23.6 //second
21
...
答案 0 :(得分:1)
您需要每周对数据进行分组。您可以使用yearweek()
SELECT yearweek(`time`), AVG(value)
FROM table
WHERE time BETWEEN date_sub(now(), INTERVAL 8 DAY) AND NOW()
group by yearweek(`time`)