求教一个sql问题
有一张StudentAchievement表
StudentID CourseID Achievement(成绩)
统计并显示每门课程的课程编、课程总分和课程平均分,并满足课程平均分80分以上的
我编了这样一条语句,
select sum(Achievement), avg(Achievement) as avgScore,courseid from StudentAchievement where avgScore> 80 group by courseid
但显示avgScore无效,请教有什么好方法?
------解决方案--------------------select sum(Achievement), avg(Achievement) as avgScore,courseid from StudentAchievement group by courseid having(avg(Achievement))> 80
------解决方案--------------------select CourseID , sum(Achievement) 课程总分, avg(Achievement) 课程平均分
from StudentAchievement
group by CourseID
having (avg(Achievement)) > = 80
------解决方案--------------------select sum(Achievement), avg(Achievement) as avgScore,courseid from StudentAchievement group by courseid having avg(Achievement)> 80
------解决方案--------------------where 后面不能使用聚合函数:sum、avg、max、min、count,需要使用having 代替where
注意:having 必须放到sql语句的最后面