SQL刪除重復記錄(保留一條)的問題
來源:程序員人生 發布時間:2013-10-11 08:20:19 閱讀次數:3320次
今天,有個網友來請教小編SQL刪除重復記錄的問題,他的數據庫中有大量的重復記錄,他只想保留一條,這個問題可把小編難住了,因為小編對SQL SERVER不太熟悉,在網上搜了一下,代碼如下:
table sturcture
{taskRecordId,taskDate,userId,teamId,taskId,unit,nots}
delete duplicate taskDate,UserId,teamId and taskId.
the sql is
delete from TaskRecord
select * from TaskRecord
where taskRecordId in
(
select MIN(taskRecordId) from TaskRecord t join
(select COUNT(*) d,taskDate,userId,teamId from TaskRecord
where taskId=6
group by taskDate,userId,teamId having (COUNT(*)>1)) x
on t.taskDate=x.taskDate and t.userId=x.userId and t.teamId
=x.teamId where t.taskId=6 group by t.taskDate,t.userId,t.teamId
)