-
2016-12-07 16:41:09
temp_table: 是一张临时表
a :是要处理的表(有重复数据的)
--把 a的记录distinct后的结果放入到temp_table
select distinct * into temp_table from a
--把a表的记录清空
delete from a
--把temp_table表的数据(没有重复记录),插入到a表
insert into a select * from temp_table
--删除临时temp_table
drop table temp_table
更多相关内容 -
sql 删除表中的重复记录
2020-12-16 16:17:35如下sql,找出重复的记录,和重复记录中ID值最小的记录(表中ID为自增长) select MIN(ID) as id, StructSN ,Date,UserID,StarCount,COUNT(StructSN) as c from T_Dor_StructStar where Date >= '20160919' group ... -
Sql Server里删除数据表中重复记录的例子
2021-01-21 14:50:13数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除! [分析] 1、生成一张临时表new_users,表结构与users表一样; 2、对users表按id做一个循环,每从users表中读出一个... -
sql 查出一张表中重复的所有记录数据并且删除
2020-05-08 16:23:52一张表中有id和name 两个字段,查询出name重复的所有数据,现在列下: select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、查询出所有数据进行...一张表中有id和name 两个字段,查询出name重复的所有数据,现在列下:
select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1)
2、查询出所有数据进行分组之后,和重复数据的重复次数的查询数据,先列下:
select count(username) as '重复次数',username from xi group by username having count(*)>1 order by username desc
3、一下为 查看别人的 结果,现列下:查询及删除重复记录的方法大全
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查找表中多余的重复记录(多个字段)
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
(二)
比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;Select Name,Count(*) From A Group By Name Having Count(*) > 1
如果还查性别也相同大则如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
(三)
方法一
declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; open cur_rows fetch cur_rows into @id,@maxwhile @@fetch_status=0 begin select @max = @max -1 set rowcount @max delete from 表名 where 主字段 = @id fetch cur_rows into @id,@maxend close cur_rows set rowcount 0
方法二"重复记录"有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用select distinct * from tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),
可以按以下方法删除
select distinct * into #Tmp from tableName drop table tableName select * into tableName from #Tmp drop table #Tmp
发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。
2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下 假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集select identity(int,1,1) as autoID, * into #Tmp from tableName select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID select * from #Tmp where autoID in(select autoID from #tmp2)
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
(四)
查询重复select * from tablename where id in (select id from tablenamegroup by idhaving count(id) > 1)
-
MySQL删除一张表中的重复记录
2020-07-28 14:30:21MySQL删除一张表中某一字段值的重复记录 delete from 表名 where id in ( select * from ( select id from 表名 where 字段名 in ( # 查找字段值重复的信息 select 字段名 from 表名 group by 字段名 ...MySQL删除一张表中某一字段值的重复记录
delete from 表名 where id in ( select * from ( select id from 表名 where 字段名 in ( # 查找字段值重复的信息 select 字段名 from 表名 group by 字段名 having count(1)>1 ) and id not in ( # 查找最小id记录 select min(id) from 表名 group by 字段名 having count(1)>1 ) ) as 表名_copy );
如果是两个字段值重复 写法是(字段名1, 字段名2)
-
sql中如何删除一个表中重复的记录?
2021-01-21 17:15:48展开全部数据库去重复有以下三种方法:...2.两条记录之间之后只有部分字段的值是有重复的,但是表存在主键或者唯一性ID。如果是这种情况的话用DISTINCT是过滤不了的,这就要用到主键...展开全部
数据库去重复有以下三种方法:32313133353236313431303231363533e78988e69d8331333366306533
1.两条记录或者多条记录的每一个字段值完全相同,这种情况去重复最简单,用关键字distinct就可以去掉。
2.两条记录之间之后只有部分字段的值是有重复的,但是表存在主键或者唯一性ID。如果是这种情况的话用DISTINCT是过滤不了的,这就要用到主键id的唯一性特点及group by分组。
3.两条记录之间之后只有部分字段的值是有重复的,但是表不存在主键或者唯一性ID。这种情况可以使用临时表,讲数据复制到临时表并添加一个自增长的ID,在删除重复数据之后再删除临时表。
扩展资料:
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断。
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录。
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查找表中多余的重复记录(多个字段)。
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录。
delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录。
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>。
-
最高效的删除重复记录方法
2015-12-03 15:58:46最高效的删除重复记录方法 -
MYSQL查询一张表中重复的所有记录数据(数据库表重复数据删除处理)
2022-01-10 11:28:581、一张表中有username 字段数据重复,查询出username字段数据重复的所有数据,如下 ...2、删除表中多余的重复记录,如下是删除企业信息表里企业统一信用代码(unifiedcode)重复的数据,通过province_code -
使用SQL语句去掉重复的记录【两种方法】
2020-09-09 09:43:39主要介绍了用SQL语句去掉重复的记录的两种方式,两种方式都可以使用临时表操作,具体实现方法大家跟随脚本之家小编一起通过本文学习吧 -
mysql之如何删除表中的重复记录只保留其中一条
2021-01-19 17:00:00在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?谢谢!1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select*...1)2、删除表中多余的重复记录,重复记录是根据单个字... -
mysql删除表重复数据
2022-01-13 17:15:23新建示例表结构和数据 CREATE TABLE `user` ( `name` varchar(20) DEFAULT NULL, `age` int DEFAULT NULL, `id` int NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB INS -
mysql查找删除表中重复数据方法总结
2021-03-16 13:41:11mysql查找删除表中重复数据方法总结在数据库表里,我们有时候会保存了很多重复的数据,这些重复的数据浪费资源,我们要将其删除掉,应该怎么处理呢?下面来看一下。先看下我们的表数据,有一些数据是重复的。要查找... -
如何删除掉一张表的重复数据?
2021-11-22 15:08:502.把有重复记录的表中的记录用distinct处理后,复制到临时表 INSERT INTO 临时表 SELECT DISTINCT * FROM 目标表 3.清除掉有重复记录的表的所有数据 DELETE FROM 目标表 4.将临时表中的记录复制到目标表中 INSERT ... -
Oracle查询表里的重复数据方法
2020-12-16 09:14:46一张person表,有id和name的两个字段,id是唯一的不允许重复,id相同则认为是重复的记录。 二、解决 select id from group by id having count(*) > 1 按照id分组并计数,某个id号那一组的数量超过1条则认为... -
数据库SQL server 删除一张表中的重复记录
2016-02-18 15:55:06数据库SQL server 删除一张表中的重复记录 -
MySQL根据单个字段或多个字段查询重复记录,及删除重复记录的方法
2021-02-08 03:49:06本篇文章分享一下在mysql数据库中根据表中的单个字段或者多个字段进行查询重复数据以及删除重复数据的方法。当前情况下数据库中有个大表,需要查找其中的电话字段(phone)有重复的记录id,以便比较。如果仅仅是查找... -
如何删除一张表的重复记录
2016-03-12 10:09:01有时候我们的表中的内容会有重复 的记录,这时候为了减少内存的冗余,我们就需要删除重复记录 我们分以下四步将重复记录删除: 1.把A表的记录distinct后的结果放入到temp(临时表) select distinct * into ... -
查询表中某字段有重复记录个数的方法
2021-01-19 22:36:27–查出表中有重复的id的记录,并计算相同id的数量select id,count(id) from @table group by id ... 您可能感兴趣的文章:SQL 查询和删除重复字段数据的方法SQL重复记录查询的几种方法SQL语句实现删除重复记录并只保 -
mysql中删除一个表中的重复记录并只保留一条
2019-03-08 21:31:06爬虫爬数据的时候,有些记录会重复地插入数据库,如果直接用这些数据做实验,容易对实验结果造成影响,所以必要的时候,需要先清洗数据:把重复记录删除掉只保留一条。我们可以在实验过程中清洗数据,也可以直接在... -
删除重复记录的SQL语句
2018-06-29 18:24:28有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。1、对于第一种重复,比 -
SQL删除数据库表中重复的数据
2021-03-24 20:52:25以一个字段为条件筛选重复数据并删除 delete from user.table t where t.pk_id in (select t.pk_id from user.table t group by t.pk_id having count(t.pk_id)>1) and t.rowid not in (select min(t.rowid) from... -
删除数据库表中重复数据
2021-05-21 16:41:27A表 id name price 1 茶叶 ...如图,假设有表A,A中数据如下,如何用一条sql语句删除表中重复数据,保留其id值最小的那一条数据(也就是id为1,3,4的保留) ... -
mysql查找删除重复数据并只保留一条实例详解
2020-12-19 16:25:49有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 50 1240 Abraham Lincoln High School 70 35 1241 Acalanes High School 120 89... -
Oracle删除一个表中的重复记录(一道经典的面试题)
2018-01-15 19:42:36一张表中存在很多除主键ID外,其他字段全部一样的记录,要求删除这些记录。 举例讲解: CREATE TABLE test( ID INT, NAME VARCHAR2(20), age NUMBER ) INSERT INTO test VALUES(1,'Bob',20); INSERT INTO test... -
用SQL语句,删除掉重复的记录
2020-05-08 10:39:331、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select ...2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有ro... -
mysql 删除一个表中,重复的数据
2021-03-30 11:30:05mysql 删除一个表中,重复的数据 代码实现 说明:假设现在有一个表, lottery_base_award_info , 存有base_lottery_id, period_no 相同,但id 不同的重复数据,可以先用 period_no 作分组,然后用 HAVING 对 相同的 period... -
SQL Server 2000删除表中的重复记录
2017-11-15 01:44:00在SQL Server中除了对拥有十几条记录的表进行人工删除外,实现删除重复记录一般都是写一段代码,用游标的方法一行一行检查,删除重复的记录。因为这种方法需要对整个表进行遍历,所以对于表中的记录数不是很大的时候... -
Sql Server删除数据表中重复记录 三种方法
2019-09-22 02:38:58本文介绍了Sql Server数据库中删除数据表中重复记录的方法。 [项目]数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除![分析]1、生成一张临时表new_users,表结构... -
SQL删除一张表中的重复记录
2018-11-20 17:20:51--把cat表的记录distinct后的结果放入#temp临时表 select distinct * into #temp from ...--把#temp表的数据(无重复)插入cat表 insert into cat select * from #temp --删除临时表#temp drop table #temp ...