我的数据库中有一个表,其中包含以下列:
- 卡利德
- 事件
我正在运行此查询:
SELECT COUNT(DISTINCT callid) as r FROM voipnow.ast_queue_log
WHERE queuename = '0536*401'
AND time > '2014-03-19 15:38:00'
AND callid NOT IN (SELECT callid FROM voipnow.ast_queue_log
WHERE event = 'CONNECT'
OR event = 'ABANDON')
AND event = 'RINGNOANSWER'
显示 CALLID 列相同但没有发生事件 CONNECT
或 ABANDON
或 RINGNOANSWER
的所有行
因此,当调用者等待时,只有包含事件 ENTERQUEUE
或 RINGNOANSWER
的行
这工作正常,但是当插入第一行时(使用事件 ENTERQUEUE
),它应该显示计数 1,但它显示 0,直到使用事件 RINGNOANSWER 插入另一行
最佳答案
试试这个:
SELECT COUNT(DISTINCT callid) as r
FROM voipnow.ast_queue_log
WHERE queuename = '0536*401'
AND time > '2014-03-19 15:38:00'
AND callid NOT IN (SELECT callid FROM voipnow.ast_queue_log
WHERE event IN ('CONNECT', 'ABANDON', 'RINGNOANSWER'))
关于mysql - 选择 col1 为值的行和 col1 不是值的另一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22511019/