InfluxDB2中如何汇总measurement多字段计数为单一总数
解决InfluxDB2中多字段计数求和的问题
你可以通过两种方式实现总计数的计算:
方法一:基于现有查询求和
在你已有的count()结果基础上,使用sum()函数对所有字段的计数值进行求和:
from(bucket: "my bucket") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "m1") |> count() |> sum(column: "_value") // 对所有字段的计数值求和 |> yield(name: "total_count")
count()会按_field分组返回每个字段的计数,sum(column: "_value")会将这些分组后的计数值累加,最终得到所有字段的总计数。
方法二:直接统计总条数(更高效)
如果不需要单独查看每个字段的计数,可直接取消分组后统计所有数据的总条数,避免先分组计数再求和的额外开销:
from(bucket: "my bucket") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "m1") |> group() // 取消默认的按_measurement、_field分组 |> count() |> yield(name: "total_count")
group()不带参数时会移除所有分组键,后续的count()会统计所有符合条件的数据点总数,等价于所有字段计数的总和。
内容的提问来源于stack exchange,提问作者solick
相关产品推荐
相关产品推荐

