sql >> Database >  >> RDS >> Mysql

MySql-zoekrangschikking met criteria

De vraag die telt voor het totale aantal oproepen en beantwoorde oproepen van elke klant voor de opgegeven campagne

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

Dan kunt u de bovenstaande zoekopdracht als subquery gebruiken om te bestellen

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

U kunt alle gewenste kolommen opnemen in de resultaatquery




  1. Hoe maak je een tijdelijke tabel in een Oracle-database?

  2. SQL-query om records voorwaardelijk op te halen op basis van een lijst met sleutelwaarden

  3. formaat datum wijzigen MySql

  4. MySQL - SELECT WHERE field IN (subquery) - Extreem traag waarom?