根据前一个 24 小时平均值查询浓度的时间和平均值

Posted

技术标签:

【中文标题】根据前一个 24 小时平均值查询浓度的时间和平均值【英文标题】:Query for Time and average of a conc based on previous 24 hour average 【发布时间】:2021-12-21 04:13:27 【问题描述】:

我想生成一个查询,其中有两列,一是时间,二是特定浓度。根据过去 24 小时的数据,我想计算 24 小时的平均浓度。在里面 下表,如果假设我有过去 24 小时的数据,它将计算如下 (conc+conc....+nthconc)/计数。日期将向前推进,如 8/11、9/11、10/11 等。此查询将保留在 Grafana 中,以便随时间进行 conc 可视化。有关信息,如果我在 sql 中使用 avg 函数,则 avgvalue 中显示的值与 conc 相同 谁能帮我编写此查询。

Time conc avg (my-output) Output wanted(conc)
2021-11-07 18:47:00 1 1 24 hour average
2021-11-07 18:48:00 1 2 24 hour average
....
2021-11-08 18:47:00 5 5 24 hour average
2021-11-08 18:48:00. (Get the 24 hour average)

【问题讨论】:

【参考方案1】:

看来您需要window function(参见手册3.5. Window functions、4.2.8. Window Function Calls、9.22. Window Functions)。然后你可以试试这个:

SELECT avg(conc) OVER (ORDER BY Time RANGE BETWEEN '1 DAY' PRECEDING AND CURRENT ROW)
FROM your_table

【讨论】:

以上是关于根据前一个 24 小时平均值查询浓度的时间和平均值的主要内容,如果未能解决你的问题,请参考以下文章

为啥臭氧八小时有24个数据

根据当地时间 (HH:MM) 计算 24 小时周期内每分钟的平均销售额

使用前几天同一小时的平均值填充 NaN

Prometheus 查询按特定标签随时间平均

臭氧8小时(90百分位)是啥含义

MySQL 24 小时平均 10 分钟