Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como combinar duas consultas de contagem à sua proporção?


Colocando esta resposta, pois nenhuma oferecida até agora está correta
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")

Se você também precisar das contagens individuais
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")

Nota:MySQL não tem um problema de divisão por zero. Ele retorna NULL quando Rejeitado é 0.