我试图根据计数将 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/`但没有运气。我认为这将是一个简单的东西,但很难从我的通量文档中弄清楚。
如有任何帮助,我们将不胜感激!
我建议使用变量。
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 ...