首先初始化表和数据
1 create table t_student(2 Id INT,3 Name varchar(100),4 Score int,5 ClassId INT6 );7
8 insert into t_student values (1,'A',75,1);9 insert into t_student values (2,'B',78,2);10 insert into t_student values (3,'C',74,1);11 insert into t_student values (4,'D',85,2);12 insert into t_student values (5,'E',80,1);13 insert into t_student values (6,'F',82,2);14 insert into t_student values (7,'G',98,1);15 insert into t_student values (8,'H',90,2);16 insert into t_student values (9,'I',90,2);17
18 ---班级表19 CREATE TABLE t_class(20 Id int,21 Name nvarchar(100)22 );23
24 insert into t_class values (1,'一班');25 insert into t_class values (2,'二班');26
一:首先我们先举个例子来认识一下over的庐山真面目
现在我们的需求是查询出来两个班级的前三名可以通过以下:
之前我的想法是根据分数排序然后取三条,后面发现如果分数一致的话,比如有3个人并列第一名,则这样的写法就完全不满足需求