Flux查询获取最近30天每15分钟的平均值

问题描述 投票:0回答:1

我有一个名为 my_data 的 influxDB 存储桶 它具有能源消耗 (EDC) 值作为字段 测量称为 my_portal 标签是序列号 数据每 15 分钟通过 Mqtt 存储一次

我想写一个flux查询来获取一周中每一天最后30天的平均消耗值

例如:我想要最近4个周日、周一、周四、周三的平均消费等等 平均值应该是每 15 分钟

所以我会得到一周中每一天的 7 条记录,每条记录应该有每 15 分钟的平均值 我该如何编写该查询?

我尝试过使用

|> aggregateWindow(every: 15, fn: mean, createEmpty: false)

但是这样我只会得到每 15 分钟的钱,而不是每天每 15 分钟的钱

所以我想得到这个结果 最后 4 个星期一的平均值是 10:00 = 3 和 10:15 2 以及 10:30 1.5 等等..

我想获得一周中每一天每15分钟的平均消耗量

所以我总共有 7 天,每天有最近 4 个同一天的平均值(例如最后 4 个周日或最后 4 个周三)每 15 分钟

例如:4 月 3 日星期一 10:00 的 energyConspiration 为 3,10:15 的 energyConspiration 为 2.5,20:00 的 energyConspiration 为 5

并且 4 月 10 日星期一,能量消耗在 10:00 为 2,在 10:15 为 1,在 20:00 为 4

并且 4 月 17 日星期一 10:00 的能量消耗为 4,10:15 的能量消耗为 2,20:00 的能量消耗为 2

4 月 24 日星期一,能量消耗在 10:00 为 1,在 10:15 为 3,在 20:00 为 6

所以我想要得到的是例如最近周一每 15 分钟的平均值

平均值为 10:00 2.4、10:15 = 2.125、20:00 = 4.25,依此类推,每 15 分钟一次

所以我想对过去 4 个周日进行分组,并获取其中每 15 分钟的平均值

time-series influxdb flux influxdb-2
1个回答
0
投票

我知道有点晚了,但我有一个非常相似的问题,并且正在谷歌搜索答案。空白我尝试了 chatgpt。它为我找到了正确的答案。我试过你的

所以我问的问题

我有一个名为 my_data 的 influxDB 存储桶,它具有能源消耗 (EDC) 值作为字段。测量称为 my_portal 标签为 serialNumber 数据通过 Mqtt 每 15 分钟存储一次 我想写一个flux查询来获取一周中每一天最后30天的平均消耗值

我收到以下回复

要获取一周中每一天最后 30 天的平均能耗值,您可以使用 InfluxDB 中的 Flux 查询。以下是构建此类查询的分步方法:

假设您有一个名为“my_data”的存储桶、一个名为“my_portal”的测量、一个名为“EDC”的字段和一个名为“serialNumber”的标签,并且数据每 15 分钟通过 MQTT 存储一次。

首先,您需要过滤最近30天的数据。 然后,按星期几和序列号对数据进行分组。 最后,计算一周中每一天的平均消耗量。 这是实现此目的的 Flux 查询示例:

from(bucket: "my_data")
  |> range(start: -30d) // Select data for the last 30 days
  |> filter(fn: (r) => r._measurement == "my_portal" and r._field == "EDC")
  |> group(columns: ["_tag_serialNumber", time: (start: 00:00:00, stop: 23:59:59), every: 1d])
  |> aggregateWindow(every: 1d, fn: mean)

在此查询中:

我们使用范围函数来选择最近30天的数据。 我们应用过滤器从“my_portal”测量和“EDC”字段中选择数据。 我们按“serialNumber”和一天的时间窗口对数据进行分组。 最后,我们计算该时间范围内每天的平均能耗。 此查询将为您提供过去 30 天内一周中每一天的平均消耗值,并按序列号分组。您可以根据需要进一步细化查询或格式化结果。

这个答案非常适合我的用例

© www.soinside.com 2019 - 2024. All rights reserved.