SQL语句组内分组排序教程,新增一个排序字段

使用组分分组,可以在字段后面添加一个新的字段,按指定的字段排序递增,适合进行二次筛选

SQL组内分组排序 PARTITION BY

row_number() OVER(PARTITION BY 序号 ORDER BY 相似度 序号) as 序号重复 

where b.序号重复  = '1' 

实例

SQL组内分组排序

创建一个测试表

create table tb(姓名 varchar(10),课程 varchar(10),分数 int);
insert into tb values('张三','语文',74);
insert into tb values('张三','数学',83);
insert into tb values('张三','物理',93);
insert into tb values('李四','语文',74);
insert into tb values('李四','数学',84);
insert into tb values('李四','物理',94);

以下是一个实例

select a.*,row_number() over(partition by 姓名 order by 分数 desc) as 排名
from TB a
SQL组内分组排序

也可以写成这样,加一个子循环

select b.* from
( select a.*,row_number() over(partition by 姓名 order by 分数 desc) as 排名
from TB a ) b
where 排名<=2
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论