Influxdb 2.0 Flux - 如何返回 0 而不是 null

问题描述

我想计算大于特定值的值的数量。 数据:

enter image description here

from(bucket: "bucket name")
    |> range(start: v.timeRangeStart,stop: v.timeRangeStop)
    |> filter(fn: (r) => r._value > 35)
    |> count()

如果处理数据范围内没有大于指定值的值,则不返回任何值(无数据)。

解决方法

一个小技巧的解决方案...... 而不是 filter()count() - 需要使用 map()sum()

from(bucket: "bucket name")
     |> range(start: v.timeRangeStart,stop: v.timeRangeStop)
     |> map(fn: (r) => ({ r with _value: if r._value 35 then 1 else 0 }))
     |> sum()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...