我正在尝试编写一个查询来计算和列出学生的 GPA,然后只显示低于所有学生平均 GPA 的那些。我已成功获得查询以输出每个学生的 GPA 表,但我无法让它仅显示低于平均水平的表。
以下是我当前的查询:
SELECT SC.StudentID, S.StdLastName, GPA
FROM (SELECT SC.StudentID, S.StdLastName, ROUND(SUM(C.Credits * GV.GradeValue)/SUM(C.Credits), 2) AS GPA
FROM ((Student_Classes AS SC INNER JOIN GradeValues AS GV ON SC.Grade = GV.Grade)
INNER JOIN Students AS S ON SC.StudentID = S.StudentID)
INNER JOIN Classes as C ON SC.ClassID = C.ClassID
GROUP BY SC.StudentID, S.StdLastName)
GROUP BY SC.StudentID, S.StdLastName, GPA
HAVING GPA < AVG(GPA)
ORDER BY GPA;
当我这样做时,出现的错误是,
您尝试执行的查询不包含指定表达式 GPA < AVG(GPA) 作为聚合函数的一部分。
我在这个网站上发现了多个类似错误的页面,但仍然无法正常工作。任何帮助将非常感激。