所有周的平均值

时间:2013-09-19 08:14:38

标签: mysql sql date

我的表:

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
...

1 个答案:

答案 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`)