MySQL 平均每 24 小时 1 个月
Posted
技术标签:
【中文标题】MySQL 平均每 24 小时 1 个月【英文标题】:MySQL Average every 24 hours of 1 month 【发布时间】:2016-03-07 17:52:17 【问题描述】:所以我有一个包含 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 天)应该包含 24 小时平均到 1 天。
我尝试了这个解决方案,但它没有像我希望的那样工作:Average of data for every 5 minutes in the given times
我认为该答案中的GROUP BY
不起作用,因为我不想平均,例如,每天每五个小时,而是我想平均一天中的 24 小时一天了。
【问题讨论】:
按日期分组(日期时间)?? 【参考方案1】:您仍然会使用GROUP BY
,但您可以通过DATE()
函数返回的内容来执行此操作,该函数忽略了数据的时间部分,如下所示:
SELECT DATE(a.datetime), AVG(a.metervalue)
FROM MyInterestingTable a
GROUP BY DATE(a.datetime)
【讨论】:
DATE 函数与 DAY 函数有何不同,后者似乎不起作用? 根据文档,它返回月份中的数字日期,例如:DAY(2016-02-24) 返回 24。DAY(2011-05-24) 也返回 24。如您所见,这不是你在描述的场景中想要什么。在这种情况下,DATE() 只是删除了时间部分,这正是您想要的。 啊!所以这就是问题所在,DAY 函数忽略了月份和年份!谢谢大佬!以上是关于MySQL 平均每 24 小时 1 个月的主要内容,如果未能解决你的问题,请参考以下文章
根据当地时间 (HH:MM) 计算 24 小时周期内每分钟的平均销售额
陈天艺1636050045假设跑步者1小时40分钟35秒跑了24英里。编写一个程序显示每小时以公里为单位的平均速度值
作业:1.12假设一个跑步者1小时40分钟35秒 内跑了24英里。编写一个程序显示以每小时多少公里为单位的平均速度值(注意,1英里等于1.6公里。)
作业:1.12假设一个跑步者1小时40分钟35秒 内跑了24英里。编写一个程序显示以每小时多少公里为单位的平均速度值(注意,1英里等于1.6公里。)