2016-10-31 8 views
0

私は放棄率を示すクエリを持っていますが、6秒間の呼び出し後放棄された放棄の数を確認する必要があります。同じデータセットの異なる値を1つのクエリで表示する

現在のように私は私の結果を得る:クエリがある

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 

超える放棄されたコールの値を取得するには、私はそれはのように表示したい

count | queue | waittime 

6秒間、GROUP BYの直前にAND info3 > 6を追加します。

どのように私は1つのクエリでそれを持つことができますか?

答えて

1

使用条件カウントが - 数()(または合計())関数内で条件を含める:

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 

あなたにもif()機能の代わりにcase表現を使用することができます。

+0

ありがとうございます!これは素晴らしいです。 私はこれについて読んで、前にこのような条件を使用していないでしょう。 – Stephen

関連する問題