1

我正在加入 influx 以获得间隔的第一个和最后一个值,然后得到差异。

Preset = 600

FirstValues = from(bucket: "Historian/oneday")
  |> range(start: dashboardTime)
  |> filter(fn: (r) => 
    r._measurement == "TestMeasurement" and
    r._field =="Value"  and
    r.Loc=="TXS"
  )
 |>window(every:15m)
 |>first()


 LastValues = from(bucket: "Historian/oneday")
  |> range(start: dashboardTime)
  |> filter(fn: (r) => 
    r._measurement == "TestMeasurement" and
    r._field =="Value"  and
    r.Loc=="TXS"
  )
 |>window(every:15m)
 |>last()

 CombinedValues = join (
    tables:{first:FirstValues,last:LastValues},
    on:["_stop","_start"]
 )
 totaliser = CombinedValues
                |>map(fn: (r) => ({   
                    _time: r._start,
                    //Want to do this, r._value_first < r._value_last ? Preset : r._value_first
                    _value: r._value_first - r._value_last
                }))
 totaliser
 |>window(every:inf)

这工作正常,直到时间差返回一个正数。

但是,如果 join 返回的第一个值小于 2nd value ,我想用 perset 值更新它。

前任:

Preset = 600

totaliser = CombinedValues
                |>map(fn: (r) => ({   
                    _time: r._start,

                    //Want to do this, r._value_first < r._value_last ? Preset : r._value_first

                    _value: r._value_first - r._value_last
                }))
4

1 回答 1

-2

条件逻辑对 Flux 来说相当新,但它确实存在。目前只有if, else if, 和else:

// Pattern
if <condition> then <action> else <alternative-action>

// Example
if color == "green" then "008000" else "ffffff"

但这将随着时间的推移而扩大。

https://v2.docs.influxdata.com/v2.0/query-data/guides/conditional-logic/

于 2019-05-15T18:53:06.713 回答