首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

sql删除重复数据且只保留一条?

发布网友

我来回答

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 peopleName in (select peopleName from people group by peopleName having count(peopleName) > 1) and peopleId not in (select min(peopleId) from people group by peopleName having count(peopleName)>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) 6.消除一个字段的左边的第一位: update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like ‘村%‘ 7.消除一个字段的右边的第一位: update tableName set [Title]=left([Title],(len([Title])-1)) where Title like ‘%村‘ 8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录 update vitae set ispass=-1 where peopleId in (select peopleId from vitae group by peopleId

 

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

标签:

热心网友

这个简单,凡是重复的保留一个就可以了,是这个意思吧。
那么就是 select min(id) from table group by title这样的就能查出来每个title的最小的id,就算有重复的,也能显示出来最小的id,如果没有重复,那么这条语句也会得到唯一的id
然后where id not in(上面的语句)
这样就可以找到所有的不在上面语句朝招范围内的语句,比如id为2732,2733,2734这三条,那么上面的语句查出来的id就是2732,下面这个not in能查出来的就是2733和2734,然后再用delete删除就可以了。
当然min(id)也可以用max(id)效果是一样的,只是保留的id变成了2734
不过这里有一个问题,那就是title字段重复,整个行都重复吗?如果能确认整行重复,那么这条语句基本没问题,如果不能确定,那么就还需要再考虑才可以。

热心网友

在你的查询sql里面将子查询的title改成id,外面用id in(),这样会得到去重后的数据导出insert语句,将表中数据备份删除,再将导出的sql执行一下即可,还有一种就是写删除sql,delete from table where id not in(select id from table group by title )。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com