遇見了表中存在重復(fù)的記錄的問題,直接寫sql刪除時(shí)最快的,才不要慢慢的復(fù)制到excel表中慢慢的人工找呢
如下sql,找出重復(fù)的記錄,和重復(fù)記錄中ID值最小的記錄(表中ID為自增長(zhǎng))
select MIN(ID) as id, StructSN ,Date,UserID,StarCount,COUNT(StructSN) as c
from T_Dor_StructStar
where Date >= '20160919'
group by StructSN ,Date,UserID,StarCount
having COUNT(StructSN) > 1
然后就可以直接刪除,基本原理就是,找到重復(fù)記錄的每一條記錄,排除掉重復(fù)id最小的記錄,刪除剩余的重復(fù)記錄。
delete from T_Dor_StructStar
where ID in (
select s.ID from T_Dor_StructStar s,
(
select MIN(ID) as id, StructSN ,Date,UserID,StarCount,COUNT(StructSN) as c
from T_Dor_StructStar
where Date >= '20160919'
group by StructSN ,Date,UserID,StarCount
having COUNT(StructSN) > 1
)a
where
a.Date = s.Date
and a.StructSN = s.StructSN
and a.UserID = s.UserID
and a.StarCount = s.StarCount
and a.id != s.ID
)
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
您可能感興趣的文章:- SQL語句實(shí)現(xiàn)刪除重復(fù)記錄并只保留一條
- MySQL數(shù)據(jù)庫中刪除重復(fù)記錄的方法總結(jié)[推薦]
- SqlServer2005中使用row_number()在一個(gè)查詢中刪除重復(fù)記錄的方法
- SQL Server2008中刪除重復(fù)記錄的方法分享
- sqlserver 刪除重復(fù)記錄處理(轉(zhuǎn))
- SqlServer 2005中使用row_number()在一個(gè)查詢中刪除重復(fù)記錄
- mysql刪除重復(fù)記錄語句的方法
- SQL語句實(shí)現(xiàn)刪除ACCESS重復(fù)記錄的兩種方法
- SQL對(duì)冗余數(shù)據(jù)的刪除重復(fù)記錄只保留單條的說明
- 有用的SQL語句(刪除重復(fù)記錄,收縮日志)