为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用SQL语句计算百分比

如何使用SQL语句计算百分比

墨色风雨 2019-09-19 10:56:19
我有一个包含用户及其成绩的SQL Server表。为简单起见,我们只想说有2列 - name&grade。所以一个典型的行是Name:“John Doe”,等级:“A”。我正在寻找一个SQL语句,它将找到所有可能答案的百分比。(A,B,C等......)另外,有没有办法在没有定义所有可能的答案的情况下这样做(开放文本字段 - 用户可以输入'通过/失败','无'等...)我要找的最终输出是A:5%,B:15%,C:40%等等......
查看完整描述

3 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

我测试了以下内容,这确实有效。gordyii的答案很接近但在错误的地方乘以100并且有一些缺失的括号。


Select Grade, (Count(Grade)* 100 / (Select Count(*) From MyTable)) as Score

From MyTable

Group By Grade


查看完整回答
反对 回复 2019-09-19
?
阿晨1998

TA贡献2037条经验 获得超6个赞

效率最高(使用over())。


select Grade, count(*) * 100.0 / sum(count(*)) over()

from MyTable

group by Grade

通用(任何SQL版本)。


select Grade, count(*) * 100.0 / (select count(*) from MyTable)

from MyTable

group by Grade;

使用CTE,效率最低。


with t(Grade, GradeCount) 

as 

    select Grade, count(*) 

    from MyTable

    group by Grade

)

select Grade, GradeCount * 100.0/(select sum(GradeCount) from t)

from t;


查看完整回答
反对 回复 2019-09-19
  • 3 回答
  • 0 关注
  • 3839 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信