在MySQL中计算5分钟间隔的平均值
我有一个表log
,其中包含id、Value、Category和Timestamp列。假设表格按如下方式填写:
ID VALUE CATEGORY TIMESTAMP
-----------------------------------------------
1 10 1 2010-11-1 10:00:00
2 20 1 2010-11-1 10:03:00
3 15 2 2010-11-1 10:15:00
4 05 2 2010-11-1 10:19:00
5 30 1 2010-11-1 10:24:00
6 12 1 2010-11-1 10:30:00
现在,我想为指定的检查生成一个表,从最后一个检查条目开始,每隔5分钟为列值生成一个avg()。Check=1的输出应如下所示:
ID AVERAGE
----------
1 12
2 30
3 15
check
=2的输出应为:
ID AVERAGE
----------
1 10
处理这一问题的最佳方法是什么?我对MySQL有基本的了解,但这让我感到困惑。我认为查询的一部分如下所示(不包括5分钟间隔分组):
SELECT avg(value) FROM log WHERE check = ..
如何使用时间戳生成5分钟间隔平均值?我们非常感谢您的帮助。
解决方案
请参阅this。
select AVG(value), from_unixtime(ROUND(timestamp / (60*5)) * 60 * 5) as rounded_time
from table
group by rounded_time
相关文章