我有两个问题:
select count(*) from my_table where status="accepted"
Run Code Online (Sandbox Code Playgroud)
和
select count(*) from my_table where status="rejected"
Run Code Online (Sandbox Code Playgroud)
我要找到接受/拒绝的比例,所以我想知道是否可以组合这两个查询,所以我不必执行两个查询
因为到目前为止没有提供这个答案是正确的
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")
Run Code Online (Sandbox Code Playgroud)
如果您还需要个人计数
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")
Run Code Online (Sandbox Code Playgroud)
注意:MySQL没有除零问题.当Rejected为0时,它返回NULL.