mssql sqlserver 获取一张表中群组后下一个不一样值的方法分享


摘要:
下文分享使用sql脚本获取一张表不同数据的下一条记录的方法


例:

   create table test(keyId int identity,
sort varchar(100),qty  int)
go

insert into test(sort,qty)
values
('maomao365.com',3),('maomao365.com',61),
('sql教程',8),('sql教程',9),
('猫猫小屋',28),('猫猫小屋',38),
('sql_blog',12),('sql_blog',18)
go
/*
sort列相同,只展示qty最大的一条的数据
实现思路:使用row_number对群组数据进行分组并排序,
      然后根据排序后的值,展示群组中的"第一条"数据
*/
select * from 
(
select row_number() 
       over(partition by sort order by qty desc )
    as keyIdNew,
* from test
) as tmp
where tmp.keyIdNew =1  


go
truncate table test
drop     table test
mssql_sqlserver_row_number应用_只取一条数据

mssql_sqlserver_row_number应用_只取一条数据