我有一个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条记录的平均值和当前分钟前3条记录的平均值。
如何构造查询语句以确保它仅返回前一分钟的所有记录的平均值?例如,如果NOW() = 19:23:31,它将返回从19:22:00到19:22:59输入的六条记录的平均值。
谢谢。- Baobab
发布于 2015-12-17 07:37:22
试试这个:
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')https://stackoverflow.com/questions/34328969
复制相似问题