• WITH CTE (

    [ColumnName]

    ,[DuplicateCount]

    )

    AS(

    SELECT

    [ColumnName]

    ,[DuplicateCount]

    ,ROW_NUMBER() OVER(PARTITION BY [ColumnName]

    ORDER BY [ColumnName]

    AS DuplicateCount

    FROM sample_table

    )

    DELETE

    FROMCTE

    WHERE (DuplicateCount > 1)

    I think this an efficient way.