Influxdb:如何通过查询获取组中的结果数

标签 influxdb

有没有办法通过查询结果得到一组中结果/点/记录的总数?

> SELECT COUNT("water_level") FROM "h2o_feet" WHERE "location"='coyote_creek' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:30:00Z' GROUP BY time(12m)

name: h2o_feet
--------------
time                   count
2015-08-18T00:00:00Z   2
2015-08-18T00:12:00Z   2
2015-08-18T00:24:00Z   2

我希望在这种情况下计数为 3。尽管我可以在这里使用时间段和间隔 (12m) 计算结果数,但我想知道是否可以通过查询数据库来计算结果数。

最佳答案

您可以使用 Multiple Aggregates in single query . 使用您的示例添加 select count(*) from (<inner query>) :

> SELECT COUNT(*) FROM (SELECT COUNT("water_level") FROM "h2o_feet" WHERE "location"='coyote_creek' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:30:00Z' GROUP BY time(12m))

name: h2o_feet
--------------
time                   count_count
1970-01-01T00:00:00Z   3

但是,如果您遇到分组依据返回空行的情况,则不会对它们进行计数。

例如,对下表进行计数将导致计数为 2 而不是 3:

name: h2o_feet
--------------
time                   count
2015-08-18T00:00:00Z   2
2015-08-18T00:12:00Z   
2015-08-18T00:24:00Z   2

要在计数中包含空行,您需要添加 fill(1)像这样查询:

> SELECT COUNT(*) FROM (SELECT COUNT("water_level") FROM "h2o_feet" WHERE "location"='coyote_creek' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:30:00Z' GROUP BY time(12m) fill(1))

关于Influxdb:如何通过查询获取组中的结果数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44760431/

相关文章:

heroku - 如何在 Heroku 上运行 InfluxDB?

未找到 statsd influxdb 保留策略

count - InfluxDB 测量中有多少个点?

go - 将 influxdb 结果读入字符串导致错误 : interface{} is json. Number, not string

http - 如何在不使用 curl 的情况下通过 post 调用将数据发送到 influxdb?

json - 从 influxdb 中检索一个(最后一个)值

influxdb - 从多个测量中选择

InfluxDB - 仅获取查询中的最后一个值

influxdb - InfluxDB 2.0 中的存储桶、测量和保留策略之间的逻辑联系是什么?

c# - 将 gzip 发布到 influxdb 结果为 "unexpected EOF"