mysql:基于特定值计算百分比组成

9njqaruj  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(662)

我有一个名为table1的mysql表

结果可以是通过或失败。我要计算每个身份证的通过率。
结果必须是基于公式的下表:对于每个id,计数通过/给定id的总计数。例如id 2有2个通过和2个失败,因此百分比通过=2/4

我下面的sql查询给出了错误的结果

SELECT  id,COUNT(Result) * 100 / (SELECT COUNT(Result) FROM aa WHERE Result = 'Pass') as Percent
FROM aa
GROUP BY id

请帮忙

goucqfw6

goucqfw61#

您可以这样做条件聚合:

select id, avg(result = 'Pass') as pass_ratio
from mytable
group by id

avg() ,条件 result = 'Pass' 评估为 1 如果是真的 0 如果为假。你可以平均这些值来得到“通过”的比率。

4si2a6ki

4si2a6ki2#

你可以用 group by 条件聚合如下:

SELECT id,
       COUNT(case when result = 'Pass' then 1 end) * 100 / count(1) as Percent 
  FROM aa 
GROUP BY id

相关问题