表名:hztj
字段名:edxzqhdm ,sdxzqhdm
1.查出某一列數據中重復的,以sdxzqhdm為例
select * from hztj a where (a.sdxzqhdm) in (select sdxzqhdm from hztj group by sdxzqhdm having count(*) > 1)
2.查詢出所有數據進行分組之后,和重復數據的重復次數的查詢數據
select count(sdxzqhdm) as '重復次數',sdxzqhdm from hztj group by sdxzqhdm having count(*)>1 order by sdxzqhdm desc
查詢及刪除重復記錄的方法
(1)查找表中多余的重復記錄,重復記錄是根據單個字段來判斷 ,如:
select * from hztj
where sdxzqhdm in (select sdxzqhdm from hztj group by sdxzqhdm having count(sdxzqhdm) > 1)
(2)刪除表中多余的重復記錄,重復記錄是根據單個字段來判斷,只留rowid最小的記錄
delete from hztj
where sdxzqhdm in (select sdxzqhdm from hzth group by sdxzqhdm having count(sdxzqhdm) > 1)
and rowid not in (select min(rowid) from hztj group by sdxzqhdm having count(sdxzqhdm)>1)
(3)查找表中多余的重復記錄(多個字段)
select * from hztj a
where (a.sdxzqhdm,a.edxzqhdm) in (select sdxzqhdm,edxzqhdm from hztj group by sdxzqhdm,edxzqhdm having count(*) > 1)
(4)刪除表中多余的重復記錄(多個字段),只留有rowid最小的記錄
delete from hztj a
where (a.sdxzqhdm,a.edxzqhdm) in (select sdxzqhdm,edxzqhdm from hztj group by sdxzqhdm,edxzqhdm having count(*) > 1)
and rowid not in (select min(rowid) from hztj group by sdxzqhdm,edxzqhdm having count(*)>1)
(5)查找表中多余的重復記錄(多個字段),不包含rowid最小的記錄
select * from hztj a
where (a.sdxzqhdm,a.edxzqhdm) in (select sdxzqhdm,edxzqhdm from hztj group by sdxzqhdm,edxzqhdm having count(*) > 1)
and rowid not in (select min(rowid) from hztj group by sdxzqhdm,edxzqhdm having count(*)>1)
