Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Изтриване на дубликати от голям набор от данни (>100 милиона реда)

Ако използвате SQL Server, можете да използвате израз за изтриване от обща таблица:

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

Тук всички редове ще бъдат номерирани, получавате собствена последователност за всяка уникална комбинация от SICComb + NameComb . Можете да изберете кои редове искате да изтриете, като изберете order by вътре в over клауза.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WHERE IN (масив от идентификационни номера)

  2. Разделени със запетая резултати в SQL

  3. SQL Server 2008 - АКО НЕ СЪЩЕСТВУВА, ВМЪКНЕТЕ ДРУГА АКТУАЛИЗАЦИЯ

  4. За да получите дата от datetime в sql

  5. каскадно изтрива, причинявайки множество каскадни пътища