Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment combiner deux requêtes de comptage à leur ratio ?

Mettre cette réponse car aucune proposée jusqu'à présent n'est correcte

select count(case when status = "accepted" then 1 end) /
       count(case when status = "rejected" then 1 end) as Ratio
from my_table
where status in ("accepted","rejected")

Si vous avez également besoin des comptages individuels

select count(case when status = "accepted" then 1 end) Accepted,
       count(case when status = "rejected" then 1 end) Rejected,
       count(case when status = "accepted" then 1 end) /
       count(case when status = "rejected" then 1 end) as Ratio
from my_table
where status in ("accepted","rejected")

Remarque :MySQL n'a pas de problème de division par zéro. Il renvoie NULL lorsque Rejected vaut 0.