SQL语句:查询各班成绩前3的同学姓名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句:查询各班成绩前3的同学姓名相关的知识,希望对你有一定的参考价值。

sno classid name score
111 1 a 90
112 3 b 91
113 2 c 80
114 1 d 89
115 2 e 79
116 1 f 87
117 2 g 97
118 3 h 98
119 3 i 46
120 2 j 75
121 3 k 78
122 1 l 99
123 1 m 98
124 3 n 76
125 2 o 45
126 3 p 67
127 1 q 87
128 2 x 77

如何查出各班成绩前三同学的信息 按降序

可以用row_number函数来解决。

1、创建测试表,插入数据:

create table sc
(id int,
name varchar(20),
class varchar(20),
score int);

insert into sc values (1,\'badkano\',\'一年一班\',100)
insert into sc values (2,\'百度知道团长\',\'一年一班\',99)
insert into sc values (3,\'du小短\',\'一年一班\',95)
insert into sc values (4,\'du小小动\',\'一年一班\',97)
insert into sc values (5,\'du小智\',\'一年一班\',80)
insert into sc values (6,\'吕布\',\'一年二班\',67)
insert into sc values (7,\'赵云\',\'一年二班\',90)
insert into sc values (8,\'典韦\',\'一年二班\',89)
insert into sc values (9,\'关羽\',\'一年二班\',70)
insert into sc values (10,\'马超\',\'一年二班\',98)

2、查询每个班级的前三名,可用语句:

select * from
(select row_number() over (partition by class order by score desc) 排名,* from sc) t
where 排名<=3 order by class asc,score desc

3、结果截图:

参考技术A

分析如下:

可以用row_number函数来解决。

1、创建测试表,插入数据:

2、查询每个班级的前三名,可用语句:

3、结果截图:

拓展资料

(1)结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

(2)ql 语句就是对数据库进行操作的一种语言。

(3)更新:update table1 set field1=value1 where 范围。

(4)查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)。

(5)排序:select * from table1 order by field1,field2 [desc]。

(6)求和:select sum(field1) as sumvalue from table1。

(7)平均:select avg(field1) as avgvalue from table1。

(8)最大:select max(field1) as maxvalue from table1。

(9)最小:select min(field1) as minvalue from table1[separator]。

(资料来源:百度百科:SQL语句)

参考技术B select * from tablename a where score in ( select top 3 score from tablename b where a.classid=b.classid order by score desc);
你的意思是这样吧!希望对你有所帮助。想了下!自己顺便思考学习下!本回答被提问者采纳
参考技术C select sno,classid,name,score,row_number over(partition by classid order by score) rn from 表
where rn>4
order by name desc
参考技术D select * from table order by score desc limit 0,3;

以上是关于SQL语句:查询各班成绩前3的同学姓名的主要内容,如果未能解决你的问题,请参考以下文章

用sql语句,查询每个班级成绩排名前三名的学生姓名

sql语句课程练习

sql语句课程练习

50条SQL查询技巧查询语句示例

SQL语句查询每个学生的学号、姓名、平均成绩、最高成绩和最低成绩

SQL语句练习查询平均成绩最高的前3名同学