Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Löschen Sie Duplikate aus einem großen Datensatz (>100 Millionen Zeilen)

Wenn Sie SQL Server verwenden, können Sie aus allgemeinem Tabellenausdruck löschen:

with cte as (
    select row_number() over(partition by SICComb, NameComb order by Col1) as row_num
    from Table1
)
delete
from cte
where row_num > 1

Hier werden alle Zeilen nummeriert, Sie erhalten eine eigene Sequenz für jede eindeutige Kombination von SICComb + NameComb . Sie können auswählen, welche Zeilen Sie löschen möchten, indem Sie order by wählen innerhalb des over Klausel.