首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算成功率的涌入查询

计算成功率的涌入查询
EN

Stack Overflow用户
提问于 2018-07-27 19:00:07
回答 1查看 287关注 0票数 2

我在influxdb中有以下数据。

代码语言:javascript
复制
time                count  http_status
----                -----  -----------
1532500250000000000 105058 200
1532500250000000000 11     499
1532500260000000000 108119 200
1532500260000000000 9      499
1532500260000000000 2      400
1532500270000000000 8      499
1532500270000000000 1      400
1532500270000000000 105321 200
1532500280000000000 1      400
1532500280000000000 106611 200
1532500280000000000 15     499
1532500290000000000 105572 200
1532500290000000000 9      499
1532500290000000000 5      400

http_status为我的接口状态。

我想要在这个度量上创建一个连续的查询,以生成我的api的成功率,它应该计算如下

代码语言:javascript
复制
count(http_status == 200) / count(all apis)

我知道逻辑很简单。但是我没能写出一个涌入的sql来生成它。所以我在这里写来寻求帮助。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-07-27 19:03:19

一种方法是在select子句中使用相关子查询:

代码语言:javascript
复制
SELECT
    time,
    count,
    http_status,
    (SELECT SUM(CASE WHEN t2.http_status = 200 THEN 1 ELSE 0 END)
     FROM yourTable t2
     WHERE t2.time <= t1.time) /
    (SELECT COUNT(*) FROM yourTable t2 WHERE t2.time <= t1.time) AS ratio
FROM yourTable t1;

如果InfluxDB支持分析函数,那么我们可以使用另一种方法来编写上面的查询。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51556586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档