Sqlserver中ROW_NUMBER分组去重

Posted dengjb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sqlserver中ROW_NUMBER分组去重相关的知识,希望对你有一定的参考价值。

 

--PARTITION BY分组

DECLARE @table TABLE (
 code VARCHAR(100)
 ,name NVARCHAR(100)
 
)

INSERT INTO @table
(
 code
    ,name
)
VALUES(‘张三‘,‘aa‘),(‘张三‘,‘aa‘),(‘张三‘,‘aa‘),(‘李四‘,‘bb‘),(‘李四‘,‘bb‘),(‘李四‘,‘bb‘),(‘王五‘,‘cc‘),(‘王五‘,‘cc‘),(‘王五‘,‘cc‘),(‘张三‘,‘cc‘)


SELECT
 ROW_NUMBER() OVER(PARTITION BY code ORDER BY (SELECT 1)) num
 ,code
 ,name
 FROM @table

 SELECT
 ROW_NUMBER() OVER(PARTITION BY code,name ORDER BY (SELECT 1)) num
 ,code
 ,name
 FROM @table

 

以上是关于Sqlserver中ROW_NUMBER分组去重的主要内容,如果未能解决你的问题,请参考以下文章

SQLServer单个字段去重的方法

去重 ROW_NUMBER() OVER(PARTITION BY 分组字段 ORDER BY 排序字段) RN

Postgresql 根据单列或几列分组去重row_number() over() partition by

sql 分组取最新的数据sqlserver巧用row_number和partition by分组取top数据

ROW_NUMBER() OVER()函数用法;(分组,排序),partition by

MYSQL-实现sqlserver- row_number() over(partition by order by) 分组排序功能