我有一个名为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
请帮忙
t2a7ltrp1#
你可以用 group by 条件聚合如下:
group by
SELECT id, COUNT(case when result = 'Pass' then 1 end) * 100 / count(1) as Percent FROM aa GROUP BY id
j91ykkif2#
您可以这样做条件聚合:
select id, avg(result = 'Pass') as pass_ratio from mytable group by id
在 avg() ,条件 result = 'Pass' 评估为 1 如果是真的 0 如果为假。你可以平均这些值来得到“通过”的比率。
avg()
result = 'Pass'
1
0
2条答案
按热度按时间t2a7ltrp1#
你可以用
group by
条件聚合如下:j91ykkif2#
您可以这样做条件聚合:
在
avg()
,条件result = 'Pass'
评估为1
如果是真的0
如果为假。你可以平均这些值来得到“通过”的比率。