对不起,标题很抱歉,我在措辞上遇到麻烦。
我将在这里解释我的问题,如果我可以向您展示我正在寻求帮助的内容,则更容易理解。
我有一个表,可跟踪系统的呼叫次数。每个呼叫可以尝试任何次数。
我有一张非常简单的桌子
| attemptId(pk) | callId | isFailed |
| 1 | 1 | 0 |
| 2 | 1 | 1 |
| 1 | 2 | 0 |
我一直在通过简单地使用以下查询来计算不同呼叫的数量:
SELECT COUNT(DISTINCT callId) FROM mytable WHERE isFailed = '0';
在上面的表中,它返回的计数为1。我要查找的结果为0。如果任何尝试调用失败,我希望在其独特的计数中忽略它。
从表面上看,我觉得返回该表上的计数为0的查询应该很简单,但我想不到(我对mysql不好)。
可以查询吗?
最佳答案
您可以使用callId
和相关的子查询消除失败的not exists
:
select count(distinct callId)
from mytable t
where not exists (
select 1
from mytable t1
where t1.callId = t.callId
and t1.isFailed = 1
)
关于mysql - 是否有可能在这个mysql表上有条件地计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58713249/