如何使用表中的“时间戳”列选择一个小时内“值”列的平均值

Posted

技术标签:

【中文标题】如何使用表中的“时间戳”列选择一个小时内“值”列的平均值【英文标题】:How to select the average of my "Value" column over an hour using the "Timestamp" column in my table 【发布时间】:2021-07-23 10:23:20 【问题描述】:

我的表叫做 bluescope_data

我在这个表中有三列,包括“Timestamp”、“Value”、“lastchanged”,如下图所示。数据显示在连接仪表板上。我只想显示每小时“值”列的平均值,如下图所示。

有人可以帮我修改下面的代码,以便输出时间戳每小时的平均“值”。

    SELECT
  Timestamp AS "time",
  Value
FROM bluescopegasdata
ORDER BY Timestamp desc

【问题讨论】:

在链接中查看类似问题:***.com/questions/940550/… 【参考方案1】:

根据需要更改时间段。它将输出每小时的平均值

 SELECT DATE(Timestamp), hour(Timestamp),avg(Value) 
    FROM bluescopegasdata
    WHERE Timestamp between '2021-04-29 01:00:00' and '2021-04-29 12:00:00'
    GROUP BY hour(Timestamp)

【讨论】:

【参考方案2】:

已经有宏可以帮助按时间间隔分组:

    SELECT $__timeGroup(Timestamp, '1h'),
        avg(Value)
    FROM bluescopegas_data
    WHERE $__timeFilter(Timestamp)
    GROUP BY 1

【讨论】:

以上是关于如何使用表中的“时间戳”列选择一个小时内“值”列的平均值的主要内容,如果未能解决你的问题,请参考以下文章

mysql选择组中的最新时间戳

如何将所有日期格式转换为日期列的时间戳?

如何选择小于时间戳的日期和时间?

Postgres 时间戳列的默认值设置未正确使用

如何使mysql在每次修改行操作时自动将列更新为当前时间戳?

如何将 Avro 文件加载到具有“时间戳”类型的列的 BigQuery 表中