首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在InfluxDB中只过滤正值?

如何在InfluxDB中只过滤正值?
EN

Stack Overflow用户
提问于 2022-11-04 01:05:40
回答 1查看 34关注 0票数 0

我有一个InfluxDB数据库,可以测量网格电源的使用情况。当我们的太阳能光伏不足以为房子供电,而且我们从电网进口时,电网的电力是负值的。同样,当我们有多余的太阳能光伏发电,并且我们输出到电网时,测量值是正的。

现在,我想计算(也许使用integral())输出的电力成本,而不是导入的电力成本。因为有不同的速率,我不能简单地把它整合在一起,我需要分别考虑上面的零和零下的值来计算kWh中的能量,然后计算每个方向的成本。

我希望使用InfluxDB min()max(),但这似乎是从给定的间隔中选择min/max值,而不是我所认为的那样。

为了进一步的计算,我能把这个测量值分成两部分吗?

我正在使用InfluxDB 1.8,但考虑最终升级到2.x。

EN

回答 1

Stack Overflow用户

发布于 2022-11-04 04:09:42

因为您要升级到2.x,所以可以尝试Flux。

在v1.8中,您可以在这位医生之后打开Flux。

使用滤波算子筛选正值和负值,然后应用积分函数

电力盈余:

代码语言:javascript
复制
from(bucket: "yourDatabaseName/autogen")
    |> range(start: -1h)
    |> filter(fn: (r) => r._measurement == "yourMeasurementName" and r._field == "yourFieldName")
    |> filter(fn: (r) => r._value > 0)
    |> integral(unit: 10s)

电力赤字:

代码语言:javascript
复制
 from(bucket: "yourDatabaseName/autogen")
    |> range(start: -1h)
    |> filter(fn: (r) => r._measurement == "yourMeasurementName" and r._field == "yourFieldName")
    |> filter(fn: (r) => r._value < 0)
    |> integral(unit: 10s)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74311099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档