对不起,标题很抱歉,我在措辞上遇到麻烦。

我将在这里解释我的问题,如果我可以向您展示我正在寻求帮助的内容,则更容易理解。

我有一个表,可跟踪系统的呼叫次数。每个呼叫可以尝试任何次数。

我有一张非常简单的桌子

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

10-11 02:45