怎样用SQL语句实现这样的查询有这样一个表,包含班级、学生、语文成绩三个字段。表中包含若干个班,每个班都有数十名学生,该

怎样用SQL语句实现这样的查询

有这样一个表,包含班级、学生、语文成绩三个字段。

表中包含若干个班,每个班都有数十名学生,该表记录了一次测验后的语文成绩。

现在想通过SQL语句查询后,得到这样的结果:

1,每个班前10名学生的语文平均成绩;


2,每个班11-20名学生的语文平均成绩;


3,每个班第21名及以后所有学生的语文平均成绩;

其中每个班的学生数目并不相等


屡败_屡战 1年前 已收到1个回答 举报

张6000 春芽

共回答了11个问题采纳率:100% 举报

SQL2000的话建议给表加上排序字段id
SQL2005可以用开窗函数来实现统计
1.
select va.班级,avg(va.语文) as 平均成绩 from
( select 班级,学生,语文,row_number() over(partition by 班级 order by 学生)
as rn from 表)va
where va.rn20 group by va.班级

1年前

9
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.040 s. - webmaster@yulucn.com