不同行的总百分比

时间:2012-12-21 10:39:45

标签: sql-server-2012

使用以下代码,我没有得到总百分比,而是每个值不是“U”的百分比。

如何更改代码以获得总百分比?

SELECT grade, (COUNT(grade)* 100 / (SELECT COUNT(*) FROM studied)) AS Score
FROM studied
WHERE grade !='U'
GROUP BY grade

1 个答案:

答案 0 :(得分:0)

以下代码将返回值列表:成绩成绩

成绩将显示所有可用成绩,但是U. 成绩值将显示相应成绩的总百分比(包括 U) 。如果您希望得分占成绩百分比不包括 U,则以下SQL应该有效

SELECT grade, (COUNT(grade) * 100 / (SELECT COUNT(*) FROM studied WHERE grade !='U')) AS Score
FROM studied
WHERE grade !='U'
GROUP BY grade

下面的屏幕截图显示了测试数据和查询结果

enter image description here

修改

从你上一篇评论看起来这个SQL应该做的工作:

SELECT (COUNT(grade) * 100 / (SELECT COUNT(*) FROM student)) AS Score
FROM Student
WHERE grade !='U'

它将返回除U以外的所有等级的总百分比。使用屏幕截图中的数据集,它将是92(这是92%)