所以,让我们说我想跟踪我的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来解决这个问题,但我对此失败了。
答案 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
,它将不会被放入组中。