有如下两个基本表:student表
字段        备注
sId        学号
sName        学生姓名
sSex        性别
sAge        年龄Scores表
字段        备注
sId        学号
cId        课程编号
score        分数现在我想查 学号、学生名、平均分(每一个学生所选修的所有课程的分数之和除以选修的课程数)这个sql与语句该怎样写呢?sqlavg查询分组

解决方案 »

  1.   

    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
      

  2.   

    貌似有语法错误!提示,ORA-00905: 缺失关键字!
      

  3.   

    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
      

  4.   

    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
      

  5.   

    非常感谢大家的热心帮助,问题解决了!!!正确答案(已通过测试):
    select st.sId,st.sName,avg(sc.score) as avg_ 
    from student st left join scores sc 
    on st.sId = sc.sId 
    group by st.sId,st.sName;