当前位置: 代码迷 >> Sql Server >> 关于数据库去重的方法
  详细解决方案

关于数据库去重的方法

热度:84   发布时间:2016-04-24 22:34:14.0
关于数据库去重的方法求助
现有一个表 table
有两个字段 a,b

没有自增主键

现在想把 a,b 重复的数据删除,但是保留一条。

数据在千万级别,求一个高效的方法去重。
数据库

------解决方案--------------------
-------------如果删除的数据量比较大时
With dup as 
(
Select *,ROW_NUMBER() Over(Partition by a,b order by a,b)as rn
From dbo.tb
)
Select a,b
Into dbo.duptmp
From dup
Where rn = 1;
---
drop table tb;
exec sp_rename 'dbo.duptmp','dbo.tb'

当删除的数据比较少时。
------解决方案--------------------
引用:
Quote: 引用:

1、select distinct a,b into #t from tb
2、truncate table tb
3、insert into tb select * from #t


能不能解说下原理? 新手不大懂

第一步先把非重复的插入一个临时表(这个临时表就是你希望保留的数据),然后第二步把原表清空了,第三步把数据插回去原表
  相关解决方案