
3个回答
展开全部
少年、sql的分组聚合函数avg、直接就是求平均分,如果前面有字段、就按字段分成一组一组、然后求每组的平均值。否则就是求所有的平均值。
select 学生名,avg(分数字段) from 学生学分表 group by 学生名
这句意思是、按学生名字分组(就是把表中名字一样的同学的数据分在一起),然后求这组(这个名字学生)成绩的平均值
select 学生名,sum(分数字段) as 总成绩,avg(分数字段)as 平均分 from 成绩表 group by 学生名
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 总成绩
展开全部
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);
把所有的学生的总成绩都填上了
然后
看题意平均成绩是要插入一条数据
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);
追问
如果我不想新建一个表而想用嵌套可以吗??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 学生名,avg(分数字段) from 学生学分表 group by 学生名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询