sql >> Databáze >  >> RDS >> Mysql

Jak zkombinovat dva početní dotazy do jejich poměru?

Uvedení této odpovědi, protože žádná dosud nenabídnutá, je správné

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

Pokud potřebujete také jednotlivé počty

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

Poznámka:MySQL nemá problém s dělením nulou. Vrátí hodnotu NULL, když je Odmítnuto 0.



  1. Vrátit řádek s maximální hodnotou jednoho sloupce na skupinu

  2. Vrátit ID na INSERT?

  3. Co se stalo jako první v mysql:připojit se nebo kde

  4. LAST_INSERT_ID() vždy vrací 0 (RMySQL) - samostatný problém s připojením