首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

数据库操作Mysql解决办法

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

数据库操作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

热点排行