如何用sql语句查询每个分组内的成员的平均值

yuanye348623610 2013-03-26 02:22:24
有如下两个基本表:

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

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

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

这个sql与语句该怎样写呢?
...全文
4699 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kangyewei 2013-03-27
  • 打赏
  • 举报
回复
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
小海葵1 2013-03-27
  • 打赏
  • 举报
回复
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
yuanye348623610 2013-03-27
  • 打赏
  • 举报
回复
非常感谢大家的热心帮助,问题解决了!!! 正确答案(已通过测试): select st.sId,st.sName,avg(sc.score) as avg_mark from student st left join scores sc on st.sId = sc.sId group by st.sId,st.sName;
  • 打赏
  • 举报
回复
2表连接 计算平均分就可以了
yuanye348623610 2013-03-26
  • 打赏
  • 举报
回复
貌似有语法错误! 提示,ORA-00905: 缺失关键字!
睿智天成 2013-03-26
  • 打赏
  • 举报
回复
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

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧