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

数据库操作Mysql
我有两个表
学生表
学号 姓名 性别 年级 专业(后面省略)
成绩表
id 学号 成绩(部分省略)

每个学生可以有多个成绩记录,现在我要查询某个年级、专业的所有学生的成绩信息,这样是很好做的。

但需要后续加工,我需要统计其中每个学生有几条成绩记录,并将成绩加总,再除以记录数得到平均成绩。然后以这个平均成绩再按升序排序。理想返回的结果应该是这样的

学号 姓名 性别 平均成绩

哪位高手指点下,谢谢
MySQL 数据库

------解决方案--------------------
童鞋,给你一句忠告以后再设计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