首页 > 解决方案 > MySQL:根据特定值计算百分比组成

问题描述

我有以下名为 Table1 的 MySQL 表

MySql 表

结果可以是通过或失败。我想计算每个 id 的通过百分比。

结果必须是基于公式的下表:对于每个 id,计算给定 id 的 Pass / Total Counts。例如 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

请帮忙

标签: mysqlsqlpivotaggregate-functions

解决方案


您可以像这样进行条件聚合:

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

在 的上下文中avg(),条件result = 'Pass'被评估为1真假0。您可以平均这些值以获得“通过”的比率。


推荐阅读