If you want to keep one row of duplicate groups, you can use ROW_NUMBER . In this example, I hold the line with the smallest Id :
WITH CTE AS ( SELECT rn = ROW_NUMBER() OVER( PARTITION BY employeeid, dateofincident, typeid, description ORDER BY Id ASC), * FROM dbo.TableName ) DELETE FROM cte WHERE rn > 1
source share