日期:2014-05-17  浏览次数:21606 次

如何用sql语句查询每个分组内的成员的平均值
有如下两个基本表:

student表
字段        备注
sId        学号
sName        学生姓名
sSex        性别
sAge        年龄

Scores表
字段        备注
sId        学号
cId        课程编号
score        分数

现在我想查 学号、学生名、平均分(每一个学生所选修的所有课程的分数之和除以选修的课程数)

这个sql与语句该怎样写呢?
sql avg 查询 分组

------解决方案--------------------
select a.sid 学号,a.sname 学生名,sum(b.score)/count(cid) 平均分 from student a left join scores b where a.sid=b.sid order by a.sid
------解决方案--------------------
select
  a.sId
  , a.sName
  , avg(b.score) as avgscore 
from
  student a 
  left join scores b 
where
  a.sId = b.sId 
group by
  a.sId,a.sName
------解决方案--------------------
select
  st.sId
  , st.sName
  , avg(sc.score) avgscore 
from
  student st 
  left join scores sc 
on
  st.sId = sc.sId 
group by
  st.sId
------解决方案--------------------
2表连接 计算平均分就可以了