在InfluxDB 2.x中,可以使用Flux查询语言来筛选非空值。Flux提供了一个filter()
函数,可以用来过滤指定字段中的NULL值。
例如,以下查询会返回measurement名为example_measurement
、tag键为tag_key
、tag值为tag_value
和field键为field_key
的字段中不包含NULL值的平均值:
from(bucket: "my-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "example_measurement" and r.tag_key == "tag_value")
|> filter(fn: (r) => r._field == "field_key" and r._value != null)
|> mean()
在该查询中,第二个filter()函数用于选择符合指定条件(例如测量名称和标签)的行,并将其发送到下一个函数。第三个filter()函数进一步筛选了仅包含非NULL值的行。最后,mean()函数计算了筛选结果的平均值。
请注意,在InfluxDB 2.x中,也支持其他类似的聚合函数(如sum()、count()等),它们都可以与filter()函数结合使用以实现类似功能。