按时间范围划分平均时间间隔

时间:2018-01-11 20:37:23

标签: mysql

所以,让我们说我想跟踪我的CPU温度,用简单的列' date'温度'我想看看上周平均温度最高的时期。我每10分钟捕获一次数据,所以我希望每周10分钟的块与一周中的其他几天相同的块进行平均。

例如:

2018-01-08 02:00:00 78.3
2018-01-08 03:00:00 81.2
2018-01-09 02:00:00 74.1
2018-01-09 03:00:00 75.9

我想要每天的平均值@ 02:00:00,每天@ 03:00:00,依此类推。 (实际数据除了每10分钟一次)确切的日期时间各不相同 - 它不总是02:00:02,有时可能是02:00:07等,所以我不能做确切的条件。

知道我如何制作这些数据吗?我假设我可以通过某种方式使用GROUP BY来解决这个问题,但我对此失败了。

1 个答案:

答案 0 :(得分:0)

仅格式化小时和分钟,并按此分组。

SELECT DATE_FORMAT(date, '%H:%i') AS time, AVG(temperature) AS temp
FROM yourTable
GROUP BY time

这假设读数从未延迟超过预期的10分钟时间 - 如果02:10的读数发生在02:11:01,它将不会被放入组中。