在MySQL中计算5分钟间隔的平均值

2022-03-31 00:00:00 average sql mysql

我有一个表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

相关文章