删除重复的数据(完全一致的重复)

MSsql

遗留的数据表中存在大量重复的记录,这些重复的数据的特点是:包括标识ID在内,所有数据列都一样,即完全一致的重复。如何去掉重复的记录,例如2条相同的数据 ,ID,各个字段都完全相同,无法在现有数据 上把这两条数据 区分开,需要可以分别开来的字段,

具体步骤如下:

--1 添加临时标识字段

1 alter table [表名]
2 add idd varchar(50)

--2 更新此字段,这样就能区分数据

1 update [表名] set idd=NEWID()

--3删除重复的,通过原标识 id分组,数据大于1的,取最小的一条删除

1 delete from [表名] where idd  in(select min(idd) from [表名] group by id having(COUNT(*)>1) )

--4 删除增加的临时列

1 alter table [表名]
2 drop column idd

以上为删除的方法。

此方法只删除了重复数为2的记录,如果有更多重复的记录,可以把3多运行几次。

删除之前注意备份数据。

原文地址:https://www.cnblogs.com/jams742003/p/11102390.html

时间: 2024-08-30 13:42:28

删除重复的数据(完全一致的重复)的相关文章

数据去重2---高性能重复数据检测与删除技术研究一些零碎的知识

高性能重复数据检测与删除技术研究 这里介绍一些零碎的有关数据重删的东西,以前总结的,放上可以和大家交流交流. 1 数据量的爆炸增长对现有存储系统的容量.吞吐性能.可扩展性.可靠性.安全性. 可维护性和能耗管理等各个方面都带来新的挑战, 消除冗余信息优化存储空间效率成为 缓解存储容量瓶颈的重要手段,现有消除信息冗余的主要技术包括数据压缩[8]和数据去 重. 2 数据压缩是通过编码方法用更少的位( bit)表达原始数据的过程,根据编码 过程是否损失原始信息量,又可将数据压缩细分为无损压缩和有损压缩.

用sql删除数据库重复的数据的方法

/***********************************************两个意义上的重复记录:1.是完全重复的记录,也即所有字段均重复的记录,2.是部分关键字段重复的记录,比如username字段重复,  而其他字段不一定重复或都重复可以忽略,这类重复  问题通常要求保留重复记录中的第一条记录************************************************/ /*1.数据完全重复(用到了一个临时表#Tmp)*/CREATE TABLE ad

Mysql 如何删除数据表中的重复数据!

1.使用distinct查询所有不重复的记录 2.创建数据表相同结构的临时表,将第一步的数据复制进去 create temporary table if not exists student_temp as (select distinct(name), sex from student); 3.truncate table student; 4.insert into student(id,name,sex) select null,name,sex from student_temp; My

mysql 删除单表内多个字段重复的数据

mysql 删除单表内多个字段重复的数据 DELETE from lot_log_payflow WHERE (pay_no,sub_flow_type) in (SELECT pay_no,sub_flow_type from (SELECT pay_no,sub_flow_type FROM lot_log_payflow GROUP BY pay_no,sub_flow_type HAVING COUNT(*)>1) s1) AND id NOT in (SELECT id from (S

删除sql server中重复的数据

原文:删除sql server中重复的数据 with list_numbers as( select Name, AuthorOrTime, Url, Price, EstimatePrice, Size, Category, ROW_NUMBER() over (order by Name, AuthorOrTime, Url, Price, EstimatePrice, Size, Category) as 'rownumber' from Arts)delete list_numbers

c++ 链表删除重复的数据

//List.h #include <iostream> typedef int dataType; struct Node{ Node():data(0),pNextNode(NULL){} //结点构造函数 dataType data; Node* pNextNode; }; class List{ private: Node *head; //作为链表唯一的头指针 int size; //链表长度 public: List(){head=new Node;size=0;} bool is

ORACLE 删除重复的数据

内容转自:https://www.cnblogs.com/zfox2017/p/7676237.html 查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select Id from 表 group byId having count(Id) > 1  --(查找表中那个字段是重复的) select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1) 

Sql Server 存储过程删除一个表里(除ID外)完全重复的数据记录

1 CREATE PROCEDURE P_DeleteSameData 2 ( 3 @table nvarchar(50),--表名 4 @columns nvarchar(200)--列名,格式形如:Id,Name,Age 5 ) 6 AS 7 BEGIN 8 BEGIN TRY 9 BEGIN TRANSACTION 10 DECLARE @SQL NVARCHAR(1000),@tempTable NVARCHAR(20); 11 SET @SQL = ''; 12 IF OBJECT_I

Excel技巧--做一去重复的数据下拉列表

当我们有一数据列表(内含重复数据),将该数据做成如下图的下拉列表: 可以这样做: 1.选中该标题行,按ctrl+shift+下方向键,将该列有数据的区域选中: 2.点击“数据”—>删除重复项: 由于该数据列还有左侧的数字列,所以我们只对当前选定的区域进行删除重复项并排序. 或者也可以一开始将该列复制到空白处形成新的一列,再对该列进行去重复操作,这样不影响原数据. 3.再一次重复第1步骤选定好该列区域,点击“公式”-->“根据所选内容创建”,对话框选择“首行”. 4.选择要做的下拉列表的单元格,