वह क्वेरी जो निर्दिष्ट अभियान के लिए प्रत्येक ग्राहक की कुल कॉल और उत्तर की गई कॉलों की गणना करती है
select
c.id,
count(*) as total_calls,
sum(case when answered=1 then 1 else 0 end) as answered_calls
from customer c
join calls cs on c.id=cs.customer_id
where cs.campaign='2016-09'
group by c.id
फिर आप उपरोक्त क्वेरी को ऑर्डर करने के लिए एक सबक्वेरी के रूप में उपयोग कर सकते हैं
select sub.id, (@rank:[email protected]+1) as rank
from (the subquery above) sub, (select @rank:=1)
order by
case when sub.total_calls=0 then 0 else 1,
sub.total_calls,
sub.answered_calls*100/sub.total_calls
आप परिणाम क्वेरी में कोई भी वांछित कॉलम शामिल कर सकते हैं