在一个查询中显示来自相同数据集的不同值

时间:2016-10-31 10:48:48

标签: mysql

我有一个查询显示我们的放弃率,但我们希望看到在振铃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

如何在一个查询中提供我的建议?

1 个答案:

答案 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()函数。