Mysql查询从前一分钟选择记录

时间:2015-12-17 07:31:49

标签: mysql sql datetime select average

我有一个mysql数据库,大约每10秒添加一条新记录。我需要运行一个查询,返回前一分钟的平均记录。以下返回前一分钟的部分平均值和当前分钟的部分平均值。

SELECT Avg(Irms) AS Irms, DATE_FORMAT(datetime, '%Y-%m-%d %H:%i') AS datetime
FROM power
WHERE datetime > NOW() - INTERVAL 121 MINUTE GROUP BY MINUTE(datetime)

因此,假设NOW()= 19:23:31,它将返回前一分钟的最后3条记录的平均值和当前分钟的前三条记录的平均值。

如何构建查询语句以确保它仅返回前一分钟内所有记录的平均值?例如,如果NOW()= 19:23:31,它将返回从19:22:00到19:22:59输入的六个记录的平均值。

感谢。 - 猴面包树

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT AVG(Irms) AS Irms, DATE_FORMAT(DATETIME, '%Y-%m-%d %H:%i') AS DATETIME
FROM POWER
WHERE DATE_FORMAT(DATETIME, '%Y-%m-%d %H:%i') = DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MINUTE), '%Y-%m-%d %H:%i')