数据库操作Mysql
我有两个表
学生表
学号 姓名 性别 年级 专业(后面省略)
成绩表
id 学号 成绩(部分省略)
每个学生可以有多个成绩记录,现在我要查询某个年级、专业的所有学生的成绩信息,这样是很好做的。
但需要后续加工,我需要统计其中每个学生有几条成绩记录,并将成绩加总,再除以记录数得到平均成绩。然后以这个平均成绩再按升序排序。理想返回的结果应该是这样的
学号 姓名 性别 平均成绩
哪位高手指点下,谢谢
------解决方案--------------------童鞋,给你一句忠告以后再设计sql时应注意,避免让数据库为你计算,这样会让系统变得很慢,数据量大的时候还可能导致数据库服务器的down机。sql中有orderby 和 groupby这两个可以解决你的问题。自己上网上查下怎么用
------解决方案--------------------select a.学号,b.姓名,b.性别, sum(a.成绩)/(select coun(*) from 成绩表 ) as 平均成绩
from 成绩表 a left join 学生表 b
on a.学号 =b.学号
group by a.学号
order by sum(a.成绩) asc
------解决方案--------------------select 学号, sum(成绩) as 总成绩, avg(成绩) as 平均成绩 from 成绩表 group by 1 order by 4