ai didi

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

转载 作者:行者123 更新时间:2023-12-05 02:18:38 24 4
gpt4 key购买 nike

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

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

24 4 0
文章推荐: bash - 在 Mininet 中批量执行命令
文章推荐: R删除按因素分组的数据框中的异常值
文章推荐: odata - 微软图形 API : Filter by GUID value
文章推荐: PHP 警告 PHP 启动无法加载动态库 php_pdo_sqlsrv_7_ts_x64.dll
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com