【问题标题】:How to store averages per hour in a new table?如何在新表中存储每小时的平均值?
【发布时间】:2021-08-13 18:32:37
【问题描述】:

我在mySQL,php中有下表:

表1:

Value1 Timestamp
312    2021-05-25 16:33:15
350    2021-05-25 16:33:25
411    2021-05-25 16:33:35
308    2021-05-25 16:33:45
etc

此表每 10 秒实时存储一次值。

我想取 table1 中值的每小时平均值并将它们存储在另一个表中:

表2:

Value2 Timestamp
325    2021-05-25 16:59:59
330    2021-05-25 17:59:59
289    2021-05-25 18:59:59

我假设我必须存储前一个小时的平均值 因为当前小时的平均值仍在变化。 而且我必须存储一个值,每小时一次。

【问题讨论】:

  • 最好使用聚合查询,而不是另一个表 - 但这可能取决于具体情况。
  • value1 按小时分组并显示每个组的平均值可以解决您的问题吗?如果是这样,有一个非常好的问题here

标签: php mysql sql average


【解决方案1】:

您可以使用以下方法截断到小时:

select
    cast(date_format(timestamp, '%Y-%m-%d %H:%i') as timestamp) as hh,
    avg(value1)
from t
group by hh;

您可以插入新表或使用create table as

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    相关资源
    最近更新 更多