【问题标题】:MySQL averages for 10 minutes for 24 hoursMySQL 24 小时平均 10 分钟
【发布时间】:2017-03-16 12:51:17
【问题描述】:

我有一个表格,每 10 秒更新一次数据。我需要平均 10 分钟,24 小时的特定日期。

我尝试这样做并通过 php.ini 将时间增加 10 分钟。

select AVG(active_energy), date_time from energy_readings where date_time between "2016-11-02 00:00:00" and "2016-11-02 00:00:00"+ INTERVAL 10 MINUTE;

然后

select AVG(active_energy), date_time from energy_readings where date_time between "2016-11-02 00:10:00" and "2016-11-02 00:10:00"+ INTERVAL 10 MINUTE;

24 小时。

它可以工作,但它在我的数据库服务器上占用了太多负载。

是否有一个我可以使用的 mysql 查询,它可以为我提供某一天 24 小时内 10 分钟的平均值?

【问题讨论】:

    标签: php mysql sql aggregate-functions average


    【解决方案1】:

    这是一种每 10 分钟获取一行数据的方法:

    select date(date_time), hour(date_time), floor(minute(date_time) / 6),
           avg(active_energy)
    from energy_readings
    where date_time >= '2016-11-02' and datetime < '2016-11-03'
    group by date(date_time), hour(date_time), floor(minute(date_time) / 6)
    order by min(date_time);
    

    【讨论】:

    • 'trunc' 在 MySQL 中不可用。尝试使用 date(minute(date_time)/6) 代替。但这没有用..
    • 我猜你可以像这样在这种情况下使用DIV 运算符:...group by date(date_time), hour(date_time), minute(date_time) DIV 6...@NoMadic
    • @NoMadic 。 . .哎呀。正确的函数是floor()
    猜你喜欢
    • 1970-01-01
    • 2021-12-10
    • 2018-10-21
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多