求大神解答用SQL语句如何求总成绩的平均成绩,

就是先求出各个学生的总成绩,再求出总成绩的平均分。。... 就是先求出各个学生的总成绩,再求出总成绩的平均分。。 展开
 我来答
x403879785
2013-04-12 · TA获得超过3841个赞
知道大有可为答主
回答量:1299
采纳率:100%
帮助的人:1286万
展开全部
少年、sql的分组聚合函数avg、直接就是求平均分,如果前面有字段、就按字段分成一组一组、然后求每组的平均值。否则就是求所有的平均值。
select 学生名,avg(分数字段) from 学生学分表 group by 学生名
这句意思是、按学生名字分组(就是把表中名字一样的同学的数据分在一起),然后求这组(这个名字学生)成绩的平均值

select 学生名,sum(分数字段) as 总成绩,avg(分数字段)as 平均分 from 成绩表 group by 学生名
追问
额。。。如果我只有每个学生的成绩,而我想先求每个学生的总成绩,再求总成绩的平均成绩哩??比如我知道A学生的科一30分,科二40分;B学生的科一45分,科二30分。我想写出来能先求出A总分70分,B总分75分,然后求出总分的平均分是(70+75)/2=72.5 。。。就是想用嵌套的那种方法。。
追答
你早说嘛、。
select x.学号,x.总成绩,y.平均成绩
from (select 学号,sum(成绩) as 总成绩 from 表 group by 学号)as X,(select AVG(成绩) as 平均成绩 from 表) as Y
这虽然是笛卡尔积、但是右边的记录的结果永远是一行一列。所以无妨。学号,sum(成绩) as 总成绩
dudu偶尔远行
2013-04-12
知道答主
回答量:14
采纳率:0%
帮助的人:6.2万
展开全部
update pstest set F_SUN = F_MATH + F_CH + F_EN;
把所有的学生的总成绩都填上了
然后
看题意平均成绩是要插入一条数据
insert into pstest values ("平均成绩",select sum(F_MATH)/3 from pstest, select sum(F_CH)/3 from pstest,select sum(F_EN)/3 from pstest,select sum(F_SUN)/3 from pstest);
追问
如果我不想新建一个表而想用嵌套可以吗??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
614512629
2013-04-12
知道答主
回答量:23
采纳率:0%
帮助的人:12.7万
展开全部
select 学生名,avg(分数字段) from 学生学分表 group by 学生名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式