首页 > 解决方案 > 统计失败成绩的数量 SQL

问题描述

我需要找到成绩最不及格的前 5 名学生。所以我必须计算每个的不及格成绩的数量PERSON_ID,然后我需要按每个不及格的成绩数量排序,PERSON_ID然后排名靠前

使用此语句,所有表格都被连接起来,并且只显示成绩不及格的学生。现在我只需要计算每个分数的不及格数量PERSON_ID,然后订购它。

执行此操作时,我不断收到语法错误。希望可以有人帮帮我。

标签: sqlsql-server

解决方案


可能你可以使用类似下面的查询。当我不了解列/架构/数据的更多信息时,我会特别注意连接中的计数

Select 
TOP 5
    students.PERSON_ID, 
    NumberOfGradesFailed=COUNT(1) 
from students 
    inner join grades 
        on students.PERSON_ID = grades.PERSON_ID 
    inner join grade_types 
        on grades.Grade = grade_types.Grade
where PASSING_GRADE = 0
group by students.PERSON_ID 
ORDER BY 2 DESC

推荐阅读