Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mysql查询跟踪api调用_Mysql - Fatal编程技术网

使用mysql查询跟踪api调用

使用mysql查询跟踪api调用,mysql,Mysql,我有一个名为api\u keys的表,用于跟踪api事务。提供商apiA给了我3个api键,每个键最多允许5000个调用。我能够运行单独的查询来获取调用总数,具有

我有一个名为
api\u keys
的表,用于跟踪api事务。提供商
apiA
给了我3个api键,每个键最多允许5000个调用。我能够运行单独的查询来获取
调用总数
具有<5000个调用的api键
,以及具有5000个调用的
api键
。但是,如何将这些查询放在一个显示已使用的
和未使用的
百分比的查询中

期望输出百分比:

+----------+----------+
| Consumed | Not_used |
+----------+----------+
|       70 |       30 |
+----------+----------+
api调用的总数

SELECT COUNT(*) * 5000 as total_api_calls FROM api_keys WHERE `source` = 'apiA';
尚未达到5000次调用的Api密钥:

SELECT * FROM api_keys WHERE `source` = 'apiA' and `transactions` < 5000
两条语句会将每一行的
已使用
未使用
标志适当设置为1或0。然后,您可以将它们加起来,除以总行数,得到百分比

SELECT `source`,
       SUM(CASE WHEN transactions <  5000 THEN 1 ELSE 0 END)/COUNT(*)*100 AS 'Not Used',
       SUM(CASE WHEN transactions >= 5000 THEN 1 ELSE 0 END)/COUNT(*)*100 AS 'Used'
FROM api_keys
WHERE `source` = 'apiA';
选择`源',
总和(当交易记录<5000时,则为1,否则为0结束)/计数(*)*100为“未使用”,
总和(当事务>=5000时,则为1,否则为0结束)/计数(*)*100作为“已使用”
从api_键
其中,`source`='apiA';

是否有可能获得剩余api调用的
总和?@MaryCoding我不明白。你能举个例子吗?例如,总共有
10000
个api调用,但我如何显示剩余的可用api调用数,
1357
@MaryCoding这是一个完全不同的问题,但答案很短,所以我在这里做<代码>选择id,`source`,事务小于5000时为案例,然后选择5000-其他0个事务作为api_键中的“剩余事务”结束太好了,谢谢你,这为其他可能性打开了大门。
SELECT `source`,
       SUM(CASE WHEN transactions <  5000 THEN 1 ELSE 0 END)/COUNT(*)*100 AS 'Not Used',
       SUM(CASE WHEN transactions >= 5000 THEN 1 ELSE 0 END)/COUNT(*)*100 AS 'Used'
FROM api_keys
WHERE `source` = 'apiA';