# Oracle查找重复记录

SELECT *
FROM t_info a
WHERE ((SELECT COUNT(*)
          FROM t_info
          WHERE Title = a.Title) > 1)
ORDER BY Title DESC

# 查找重复记录

-- 查找全部重复记录
Select * FromWhere 重复字段 In (Select 重复字段 FromGroup By 重复字段 Having Count(*)>1)
-- 过滤重复记录(只显示一条)
Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)
-- 注:此处显示ID最大一条记录
-- 查找表中多余的重复记录(多个字段)
select * from vitae a
where (a.peopleId,a.seq) in   (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)

# 删除重复记录

-- 删除全部重复记录(慎用,全部删除)
DeleteWhere 重复字段 In (Select 重复字段 FromGroup By 重复字段 Having Count(*)>1)
-- 重复记录保留一条
Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)
-- 注:此处保留ID最大一条记录
-- 删除表中多余的重复记录(多个字段),只留有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)