MySQL : 根据特定值计算百分比组成
MySQL : Calculate percentage composition based on a specific value
我有以下 MySQL table 名为 Table1
结果可以是通过或失败。我想计算每个id的通过百分比
根据公式,结果必须是以下 table:对于每个 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
请帮忙
您可以像这样进行条件聚合:
select id, avg(result = 'Pass') as pass_ratio
from mytable
group by id
在 avg()
的上下文中,如果条件 result = 'Pass'
为真,则计算为 1
,如果为假,则计算为 0
。您可以将这些值平均以获得“通过”的比率。
您可以使用 group by
和条件聚合,如下所示:
SELECT id,
COUNT(case when result = 'Pass' then 1 end) * 100 / count(1) as Percent
FROM aa
GROUP BY id
我有以下 MySQL table 名为 Table1
结果可以是通过或失败。我想计算每个id的通过百分比
根据公式,结果必须是以下 table:对于每个 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
请帮忙
您可以像这样进行条件聚合:
select id, avg(result = 'Pass') as pass_ratio
from mytable
group by id
在 avg()
的上下文中,如果条件 result = 'Pass'
为真,则计算为 1
,如果为假,则计算为 0
。您可以将这些值平均以获得“通过”的比率。
您可以使用 group by
和条件聚合,如下所示:
SELECT id,
COUNT(case when result = 'Pass' then 1 end) * 100 / count(1) as Percent
FROM aa
GROUP BY id