Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Usuń duplikaty z dużego zestawu danych (>100 mln wierszy)

Jeśli korzystasz z SQL Server, możesz użyć usuwania ze wspólnego wyrażenia tabelowego:

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

Tutaj wszystkie wiersze będą ponumerowane, otrzymasz własną sekwencję dla każdej unikalnej kombinacji SICComb + NameComb . Możesz wybrać, które wiersze chcesz usunąć, wybierając order by wewnątrz over klauzula.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tłumaczenie językowe dla tabel

  2. Dynamiczne kolumny przestawne w SQL Server

  3. Jak ocenić dane wejściowe w klauzuli WHERE

  4. Jak uzyskać dane z ostatniego miesiąca i dane od początku miesiąca?

  5. SQL Server:Tylko ostatni wpis w GROUP BY