MySQL平均每24小时一个月

MySQL平均每24小时一个月,mysql,Mysql,因此,我有一个包含100行和数千行的表,如下所示: +--+----------+-------------------+ |ID|metervalue |datetime | |1 |10 |2016-02-23 01:00 | |2 |20 |2016-02-23 02:00 | |3 |5 |2016-02-23 03:00 | |... |... |... | |x |x

因此,我有一个包含100行和数千行的表,如下所示:

+--+----------+-------------------+
|ID|metervalue  |datetime         |
|1   |10        |2016-02-23 01:00 |
|2   |20        |2016-02-23 02:00 |
|3   |5         |2016-02-23 03:00 |
|... |...       |...              |
|x   |x         |2016-02-24 01:00 |
|x   |x         |2016-02-24 02:00 |
|x   |x         |2016-02-24 03:00 |
|... |...       |...              |
|x   |x         |2016-03-01 01:00 |
|x   |x         |2016-03-01 02:00 |
|x   |x         |2016-03-01 03:00 |
+--+----------+-------------------+
所以很多很多天里,每小时都会有一些电表读数

现在我需要得到一个图表的数据。每小时图形数据很容易,因为我可以按原样查询数据,但对于“每月”数据,我需要查询一个月内的所有行,以便将每24小时平均为一行

因此,30行中的一行(假设一个月有30天)应该包含平均为1天的24小时

我尝试了这个解决方案,但它没有像我希望的那样起作用:


例如,我认为答案中的“分组依据”不起作用,因为我不想平均,比如说,每天的每五个小时,而是想平均一天中的24个小时来组成一天。

你仍然会“分组依据”,但你要按照
日期()
函数返回忽略数据时间部分的值,如下所示:

SELECT DATE(a.datetime), AVG(a.metervalue)
FROM MyInterestingTable a
GROUP BY DATE(a.datetime)

按日期分组(datetime)?日期函数与似乎不起作用的DAY函数有何不同?根据文档,它返回月份的数字日,例如:DAY(2016-02-24)返回24。第24天(2011年5月24日)返回。正如您所看到的,在所描述的场景中,这并不是您想要的。DATE()在本例中只删除时间部分,这正是您想要的。啊!这就是问题所在,日期函数忽略了月份和年份!谢谢你,伙计!