首页 > 解决方案 > 使用 sql 查询计算值的百分比/重新分区

问题描述

我有下表

类型 颜色 价值
一个 白色的 真的
黑色的 错误的
C 黄色 真的
d 红色的 真的
F 绿色 错误的

我想用 sql 查询计算值等于 true 的行的百分比,例如,在这里,我们总共有 5 行有 3 个 true ,这使得 60% 的类型的值等于 true ,任何想法请问如何解决这个问题?

标签: sql

解决方案


您可以使用avg()

select avg(case when value = 'true' then 1.0 else 0 end) as ratio
from t;

这将返回介于 0 和 1 之间的比率。如果您想要介于 0 和 100 之间的百分比,请使用100.0而不是1.0.


推荐阅读