sql >> Database teknologi >  >> RDS >> Sqlserver

Slet dubletter fra stort datasæt (>100 mio. rækker)

Hvis du bruger SQL Server, kan du bruge delete fra almindeligt tabeludtryk:

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

Her vil alle rækker blive nummereret, du får egen sekvens for hver unik kombination af SICComb + NameComb . Du kan vælge hvilke rækker du vil slette ved at vælge order by inde i over klausul.



  1. Complex Left Outer slutter sig til Oracle, konverterer til PostgreSQL

  2. Hvordan opsætter man pandas DataFrame til PostgreSQL-tabellen?

  3. PHP/MySQLi:SET lc_time_names og DATE_FORMAT() i en mysqli-forespørgsel?

  4. Hvordan prøver man rækker i MySQL ved hjælp af RAND(seed)?