Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kombiniert man zwei Zählabfragen mit ihrem Verhältnis?

Diese Antwort zu geben, da bisher keine angeboten wurde, ist richtig

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")

Wenn Sie auch die Einzelzählungen benötigen

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")

Hinweis:MySQL hat kein Problem mit der Division durch Null. Es gibt NULL zurück, wenn Rejected 0 ist.