我有一个问题要求我显示高于平均水平的学生的分数,得出:
SELECT Mark
FROM StudentMarks
HAVING Mark > AVG(Mark);
不幸的是,这会带来错误:
您的查询不包含指定表达式“Mark”作为聚合函数的一部分 有什么方法可以不使用来解决这个问题:
SELECT Mark
FROM StudentMarks
WHERE Mark > (SELECT AVG(Mark) FROM StudentMarks);
即没有嵌套查询?
非常感谢您的宝贵时间
Select Mark
From StudentMarks
GroupBy Mark
Having Mark > AVG(Mark);
您需要在having语句中使用子查询。
Select Mark
From StudentMarks
Group By Mark
Having Mark > (select AVG(Mark) from StudentMarks);
FROM StudentMarks AS SM
CROSS JOIN StudentMarks AS OM
GROUP BY SM.Mark
HAVING SM.Mark > AVG(OM.MARK);