我有一个查询显示我们的放弃率,但我们希望看到在振铃6秒后放弃了多少放弃。
目前我的结果是:
count | queue | waittime
我希望它显示为:
count | count6 | queue | waittime
查询是:
SELECT count(*) AS count,queue,sum(info3) as waittime FROM queue_stats
LEFT JOIN qevent ON qevent=qevent.event_id
LEFT JOIN qname ON qname=qname.queue_id
WHERE datetime>=CURDATE() AND event IN ('ABANDON','EXITWITHKEY','EXITWITHTIMEOUT','EXITEMPTY')
GROUP BY qname
ORDER BY null
为了获得超过6秒放弃的呼叫的价值,我在GROUP BY之前添加AND info3 > 6
。
如何在一个查询中提供我的建议?
答案 0 :(得分:1)
使用条件计数 - 包括count()(或sum())函数中的条件:
SELECT count(*) AS count,
count(if(info3 > 6, 1, null)) as six_count,
queue,
sum(info3) as waittime
FROM queue_stats
LEFT JOIN qevent ON qevent=qevent.event_id
LEFT JOIN qname ON qname=qname.queue_id
WHERE datetime>=CURDATE() AND event IN ('ABANDON','EXITWITHKEY','EXITWITHTIMEOUT','EXITEMPTY')
GROUP BY qname
ORDER BY null
您也可以使用case
表达式代替if()
函数。