首页 文章

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

提问于
浏览
2

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

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://stackoverflow.com/a/6560742/1142735)中,如果使用时间戳,则建议GROUP BY FLOOR(MOD((mytimestamp-1800)/ 3600))在半小时开始创建间隔 . 我正在使用datetime .

谢谢

保罗

1 回答

  • 1

    使用 DATE() 函数的任何内容都将无法正确分组间隔 23:30 - 00:30 .

    使用:

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

相关问题