我有一个表 log
,其中包含列id,值,类别和时间戳 . 假设表格填充如下:
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分钟的间隔平均值?任何帮助是极大的赞赏 .
4 回答
见this .
如果其他人感兴趣,这里是我提出的答案(在同事的帮助下) .
首先在MysQL中创建一个存储过程,如此(原始源代码从这里修改http://ondra.zizka.cz/stranky/programovani/sql/mysql_stored_procedures.texy):
然后实际的查询是这样的:
问候,伊沃
也许以后会有一个最短的查询:
这样你就可以得到5分,10分,15分,30分 . 分钟平均很容易 .