【问题标题】:Influxdb: How to get count of number of results in a group by queryInfluxdb:如何通过查询获取组中结果的数量
【发布时间】:2017-06-26 13:02:40
【问题描述】:

无论如何我可以通过查询结果获得组中结果/点/记录的总数吗?

> 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)来计算结果的数量,但我想知道是否可以通过查询数据库来做到这一点。

【问题讨论】:

    标签: influxdb


    【解决方案1】:

    您可以使用Multiple Aggregates in single query。 使用您的示例添加 select count(*) from (&lt;inner query&gt;):

    > 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))
    

    【讨论】:

      【解决方案2】:

      您将需要做一些手工工作。直接运行,

      $ influx -execute "select * from measurement_name" -database="db_name" | wc -l
      

      这将返回比实际值多 4 的值。

      这是一个例子,

      luvpreet@DHARI-Inspiron-3542:~/www$ influx -execute "select * from yprices" -database="vehicles" | wc -l
      5
      
      luvpreet@DHARI-Inspiron-3542:~/www$ influx -execute "select * from yprices" -database="vehicles" 
      name: yprices
      time                price
      ----                -----
      1493626629063286219 2
      
      luvpreet@DHARI-Inspiron-3542:~/www$ 
      

      所以,我想你现在知道为什么要从值中减去 4。

      【讨论】:

        猜你喜欢
        • 2021-07-23
        • 2018-07-29
        • 2020-09-22
        • 1970-01-01
        • 1970-01-01
        • 2014-05-12
        • 2019-02-01
        • 2020-12-27
        • 1970-01-01
        相关资源
        最近更新 更多