Here are the columns in my table:
Id
EmployeeId
IncidentRecordedById
DateOfIncident
Comments
TypeId
Description
IsAttenIncident
I would like to delete duplicate rows where EmployeeId, DateOfIncident, TypeId
and Description
are the same - just to clarify - I do want to keep one of them. I think I should be using the OVER
clause with PARTITION
, but I am not sure.
Thanks
You can use the following query. This has an assumption that you want to keep the latest row and delete the other duplicates.
If you want to keep one row of the duplicate-groups you can use
ROW_NUMBER
. In this example i keep the row with the lowestId
:use this query without using CTE....
delete a from (select id,name,place, ROW_NUMBER() over (partition by id,name,place order by id) row_Count from dup_table) a where a.row_Count >1