我有两个表
学生表
学号 姓名 性别 年级 专业(后面省略)
成绩表
id 学号 成绩(部分省略)每个学生可以有多个成绩记录,现在我要查询某个年级、专业的所有学生的成绩信息,这样是很好做的。但需要后续加工,我需要统计其中每个学生有几条成绩记录,并将成绩加总,再除以记录数得到平均成绩。然后以这个平均成绩再按升序排序。理想返回的结果应该是这样的学号 姓名 性别 平均成绩哪位高手指点下,谢谢MySQL数据库

解决方案 »

  1.   

    童鞋,给你一句忠告以后再设计sql时应注意,避免让数据库为你计算,这样会让系统变得很慢,数据量大的时候还可能导致数据库服务器的down机。sql中有orderby 和 groupby这两个可以解决你的问题。自己上网上查下怎么用
      

  2.   

    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 
      

  3.   

    select 学号, sum(成绩) as 总成绩, avg(成绩) as 平均成绩 from 成绩表 group by 1 order by 4
      

  4.   

    多谢jordan102 问题解决。仔细看了下你的sql语句,大致能够明白,不过还是得改了点东西才能完全符合我的要求。不过多谢啦!
    在此还多谢其他两位热心朋友的帮忙,接受aajunge的建议。谢谢