InfluxDb - Flux - 如果计数条件

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

我试图根据计数将 if 条件置于不断变化的状态。以下是使用案例

//pseudo code
If (count > 0) the
  //Show results from bucket A
else
 //Show results from bucket B

我无法弄清楚检查此问题的正确方法是什么,以下是实际的通量

if from(bucket: "mytestbucket")
      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
      |> filter(fn: (r) => r["entity_id"] == "main_power_availability")
      |> filter(fn: (r) => r["_field"] == "value")
      |> count() > 0
   then
    from(bucket: "mytestbucket")
      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
      |> filter(fn: (r) => r["entity_id"] == "main_power_availability")
      |> filter(fn: (r) => r["_field"] == "value")
      |> aggregateWindow(every: 1m, fn: max, createEmpty: true)
      |> fill(usePrevious: true)
      |> yield(name: "max")
    else
      _lastvalue
      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
      |> filter(fn: (r) => r["entity_id"] == "main_power_availability")
      |> filter(fn: (r) => r["_field"] == "value")
      |> aggregateWindow(every: 5m, fn: max)
      |> fill(usePrevious: true)
      |> yield(name: "max")

但是我收到错误

stream[A] is not Comparable

我已经验证计数返回正确的结果,请参见下文

这里缺少的是如何比较条件中的计数整数值,显然它是将返回的表流与整数值

0
进行比较并抛出此错误。已尝试https://docs.influxdata.com/flux/v0/stdlib/universe/findcolumn/`但没有运气。我认为这将是一个简单的东西,但很难从我的通量文档中弄清楚。

如有任何帮助,我们将不胜感激!

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

我建议使用变量。

count = from(bucket: "mytestbucket")
      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
      |> filter(fn: (r) => r["entity_id"] == "main_power_availability")
      |> filter(fn: (r) => r["_field"] == "value")
      |> count()

if count > 0 ...
© www.soinside.com 2019 - 2024. All rights reserved.