Mysql 每小时平均,间隔从半小时开始

Posted

技术标签:

【中文标题】Mysql 每小时平均,间隔从半小时开始【英文标题】:Mysql hourly average with intervals starting on the half hour 【发布时间】:2012-03-12 13:21:24 【问题描述】:

我有一个 mysql 数据库,其中包含 5 分钟 bin 中的数据。我想从半小时开始创建每小时数据的平均值。 通过使用 mysql 内置 group by:

select date,AVG(AE) from mytable group by date(date),HOUR(date);    

将计算从 01:00 到 02:00 的平均值。相反,我希望从 00:30 到 01:30 计算每小时平均值,如果该值将是 01:00 的每小时平均值。

当新的一天开始时,此查询失败:

select date, AVG(AE) from mytable group by date(date), HOUR( date ) + FLOOR( MINUTE( date ) / 30 );
+---------------------+------------------+
| date                | AVG(AE)          |
+---------------------+------------------+
| 1997-01-01 22:30:00 |               23 | 
| 1997-01-01 23:30:00 |             28.3 | 
| 1997-01-02 00:00:00 | 20.1333333333333 | 
| 1997-01-02 00:30:00 |             29.3 | 
| 1997-01-02 01:30:00 | 27.5666666666667 | 
| 1997-01-02 02:30:00 | 43.4166666666667 | 

这是我得到的最接近的 :-)

在另一篇文章 (https://***.com/a/6560742/1142735) 中,有人建议 GROUP BY FLOOR(MOD((mytimestamp-1800)/3600)) 如果使用时间戳,则从半小时开始创建间隔。我正在使用日期时间。

谢谢

保罗

【问题讨论】:

对,所以将您的日期时间值转换为公式中的时间戳格式.... 【参考方案1】:

任何使用DATE()函数的东西都将无法正确分组区间23:30 - 00:30

用途:

FLOOR((UNIX_TIMESTAMP(date) - 1800) / 3600)

【讨论】:

你的快!工作完美。谢谢

以上是关于Mysql 每小时平均,间隔从半小时开始的主要内容,如果未能解决你的问题,请参考以下文章

获得每小时平均值

mysql查询每小时平均值

MySQL 平均每 24 小时 1 个月

系统Windows Server 2003,要求每隔2小时自动重启一次服务器,并且每天都是一样?

Heroku调度程序不是每小时运行一次

如何在 DBVisualizer 中用 SQL 表示从现在开始向后的 2 小时间隔