sql过滤掉重复记录,只保留一条数据

--过滤掉重复记录,只保留一条数据
delete from
gzfw_yhxx
where Zjhm in (select Zjhm from gzfw_yhxx group by Zjhm
having count(Zjhm) > 1)
and rowid not in (select min(rowid) from
gzfw_yhxx group by Zjhm having count(Zjhm
)>1)

时间: 2024-08-25 23:36:25

sql过滤掉重复记录,只保留一条数据的相关文章

【转】SQL删除重复记录,只保留其中一条

SQL:删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(p

如何删除表中的重复记录只保留其中一条?

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  

MySQL删除重复记录只保留一条

删除表中重复记录,只保留一条: delete from 表名 where 字段ID in (select * from (select max(字段ID) from 表名 group by 重复的字段 having count(重复的字段) > 1) as b); 实例:2.当想要为某一个表建立一个唯一索引,由于表中有重复记录而无法进行时,需要删除重复记录.例表 dept id_no id_name 100 'AAA' 101 'BBB' 102 'CCC' 103 'DDD' 100 'EEE

160802、1.06s删除10w条重复记录只保留一条(mysql)及linux删除乱码文件

上次发表过的一遍删除重复记录的文章,其中最优的方案三删除1w条也花了0.07秒而2w条就已经花掉了4秒.今天进行了进一步优化,测试删除10w条只花了1.06秒.速度提升了很多. 建表语句 CREATE TABLE `test_user` ( `id` INT(10) NOT NULL DEFAULT '0', `namea` VARCHAR(40) NOT NULL, `nameb` VARCHAR(40) NOT NULL, `user_id` VARCHAR(40) NOT NULL, PR

MYSQL 删除重复记录,只保留最大ID

table : productprice table column : id ,productAsin ... 同一个productAsin 只保留最近的那条,即只保留ID 最大的. 第一步: 查出有重复的记录和最大的id SELECT productAsin,MAX(id) maxId FROM productprice GROUP BY productAsin HAVING COUNT(id) >= 2)tempt 第二步:查出在重复记录的,并且小于最大的id SELECT productp

用SQL语句,删除掉重复项只保留一条

在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete fr

MSSQL 删除重复并只保留一条

重复值查找 select field1,field2 from table group by field1,field2 having COUNT(*)>1 删除重复值,只保留ID最小的那条 delete table where field1 in (select field1 from VersionProductRelation a group by field1,field2 having COUNT(*)>1) and field2 in (select field2 from Ver

SqlServer_删除重复行只保留一条记录

前提:相同的数据重复往数据库写入,导致存在仅主键Id不同的重复数据,现在需要去除重复数据,仅保留重复数据中Id最大的一条 思路: 1.找出存在重复数据的记录,并取重复数据中最大的Id值 2.删除记录中不包含最大Id值的记录 实现: DELETE FROM [Log_IIS].[dbo].[IISLog_table] WHERE id not in (select MAX(Id) from [IISLog_table] group by [RequestTime] ,[LogFilename] ,

SQL删除重复数据只保留一条数据

1.表结构与数据: CREATE TABLE tablezzl( id int, name VARCHAR(255) ); 2.查询出重复的数据: SELECT name FROM tablezzl GROUP BY name HAVING COUNT(name)>1 3.查询出要保留的重复数据: SELECT MIN(id) ids FROM tablezzl GROUP BY NAME HAVING COUNT(name)>1 4.最终的SQL: DELETE FROM tablezzl