sql語句查詢表中重復數據(多類型)


表名: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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM