You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flux查询中if条件用法及错误查询修正

修正后的Flux查询
data = from(bucket: "BJ")
    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
    |> filter(fn: (r) => r["_measurement"] == "REJECTCOUNTERS4")
    |> filter(fn: (r) => r["_field"] == "counterIN")
    |> filter(fn: (r) => r["line"] =~ /^${line:regex}$/)

// 处理line为2l的情况
line2Data = data
    |> filter(fn: (r) => r["line"] == "2l")
    |> filter(fn: (r) => r["machine"] == "Cognex3")
    |> aggregateWindow(every: 1m, fn: last)
    |> difference(nonNegative: true)
    |> sum()

// 处理其他情况,返回0
otherData = data
    |> filter(fn: (r) => r["line"] != "2l")
    |> map(fn: (r) => ({_time: r._time, _value: 0.0, _field: r._field, _measurement: r._measurement}))
    |> group()
    |> sum(column: "_value")

// 合并结果
union(tables: [line2Data, otherData])

原查询的错误说明

  • Flux不支持在管道链中直接使用if分支语法,需通过拆分数据集、分别处理分支的方式实现逻辑
  • 相等判断需使用==,原代码中用=是赋值操作,不符合条件判断要求
  • 无法直接用return 0返回结果,必须通过map构造包含_value: 0.0的完整数据集,保证结构与正常查询结果一致

内容的提问来源于stack exchange,提问作者Sai Teja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 14:50:44