如何用sql语句查询和删除表中重复数据

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何用sql语句查询和删除表中重复数据

1、查询表中重复数据(单字段)
Select * From 表 Where 字段1 In (Select 字段1 From 表 Group By 字段1 Having Count(字段1) > 1)



2、删除表中多余的重复记录,只留有rowid最小的记录(单字段)
Delete From 表
Where 字段1 In (Select 字段1 From 表 Group By 字段1 Having Count(字段1) > 1) And
Rowid Not In (Select Min(Rowid) From 表 Group By 字段1 Having Count(字段1) > 1)


3、查找表中多余的重复记录(多个字段)
Select * From 表 a Where (a.字段1, a.字段2) In (Select 字段1, 字段2 From 表 Group By 字段1, 字段2 Having Count(*) > 1)

4、删除表中多余的重复记录,只留有rowid最小的记录(多个字段)
Delete From 表 a
Where (a.字段1, a.字段2) In (Select 字段1, 字段2 From 表 Group By 字段1, 字段2 Having Count(*) > 1) And
Rowid Not In (Select Min(Rowid) From 表 Group By 字段1, 字段2 Having Count(*) > 1)

5.删除多于的重复记录(单个字段,多个字段)
delete from table where id not in ( select min(id) from table group by name)
或者
delete from table where id not in ( select min(id) from table group by 字段1,字段2)

6.删除多余的重复记录(单个字段,多个字段)
delete from table where id in ( select max(id) from table group by name having count(*)>1)


5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
Select *
From 表 a
Where (a.字段1, a.字段2) In (Select 字段1, 字段2 From 表 Group By 字段1, 字段2 Having Count(*) > 1) And
Rowid Not In (Select Min(Rowid) From 表 Group By 字段1, 字段2 Having Count(*) > 1)


查单个字段的重复次数
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1

相关文档
最新文档