当前位置: 代码迷 >> Sql Server >> 求教一个sql有关问题
  详细解决方案

求教一个sql有关问题

热度:44   发布时间:2016-04-27 18:48:43.0
求教一个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语句的最后面
  相关解决方案