SQL删除重复数据
2017-05-06 16:42
246 查看
这个应用场景也不多说了
with C as ( select orderid,ROW_NUMBER() over(partition by orderid order by (select null)) as n from Sales.MyOrders ) delete from C where n>1
利用row_number()跟rank()也可以,
Row_number函数返回一个唯一的值,当碰到相同数据时,排名按照记录集中记录的顺序依次递增。
Rank函数返回一个唯一的值,除非遇到相同的数据时,此时所有相同数据的排名是一样的,同时会在最后一条相同记录和下一条不同记录的排名之间空出排名。
with C as ( select orderid,ROW_NUMBER() over(order by orderid) as rownum,RANK() over(order by orderid) as rnk from Sales.Orders ) delete from C where rownum<>rnk
相关文章推荐
- SQL如何删除重复的数据行
- SQL无法删除重复数据-已解决
- 查询和删除表中重复数据sql语句
- SQL对冗余数据的删除重复记录只保留单条的说明
- SQL删除重复数据
- 用sql删除数据库重复的数据的方法
- sql删除重复数据
- 如何删除SQL中重复的数据行
- SQL Server中删除重复数据的几个方法
- SQL对冗余数据的删除重复记录只保留单条的说明
- SQL删除数据表中重复记录中的一条
- SQL Server中删除重复数据的几个方法
- sql 删除重复数据
- sql删除重复数据
- 删除不同粒度的事实表记录中重复的度量值数据的SQL语句
- SQL Server中删除重复数据的几个方法
- 删除重复数据 SQL
- SQL 删除重复记录,同时统计重复记录某一列的数据 以及 SET XACT_ABORT
- SQL 如何删除数据表中重复的数据?
- Sql删除重复数据