Mam tabelę o nazwie Tabela 1, która ma 48 rekordów. Z tego tylko 24 powinno tam być w tym stole. Z jakiegoś powodu wprowadziłem do niego duplikaty rekordów. Jak usunąć duplikaty rekordów z tej tabeli.Usuwanie duplikatów rekordów z tabeli
Odpowiedz
Oto coś można spróbować czy wersja SQL Server 2005 lub później.
WITH cte AS
(
SELECT {list-of-columns-in-table},
row_number() over (PARTITION BY {list-of-key-columns} ORDER BY {rule-to-determine-row-to-keep}) as sequence
FROM myTable
)
DELETE FROM cte
WHERE sequence > 1
Używa wspólnego wyrażenia tabelowego (CTE) i dodaje kolumnę sekwencji. {list-of-columns-in-table} jest taki, jak określa. Nie wszystkie kolumny są potrzebne, ale nie wyjaśnię tutaj.
{Lista-kluczy-kolumn] to kolumny używane do definiowania duplikatu.
{rule-to-określić-wiersz-to-keep} jest sekwencją tak, że pierwszy wiersz jest wierszem, który należy zachować. Na przykład, jeśli chcesz zachować najstarszy wiersz, użyjesz kolumny daty dla sekwencji.
Oto przykład zapytania z prawdziwymi kolumnami.
WITH cte AS
(
SELECT ID, CourseName, DateAdded,
row_number() over (PARTITION BY CourseName ORDER BY DateAdded) as sequence
FROM Courses
)
DELETE FROM cte
WHERE sequence > 1
Ten przykład usuwa zduplikowane wiersze na podstawie wartości CoursName i utrzymuje najstarszy basesd na wartość DateAdded.
http://support.microsoft.com/kb/139444
Ta sekcja jest klucz. Punkt pierwotny punkt należy zabrać. ;)
W tym artykule opisano, jak znaleźć i usunąć duplikaty kluczy podstawowych z tabeli. Należy jednak dokładnie przeanalizować proces, który umożliwił wykonanie duplikatów , aby zapobiec powtarzaniu się.
Identyfikuj swoje rekordy, grupując dane według kluczy logicznych, ponieważ oczywiście ich nie zdefiniowałeś i na końcu użyłeś instrukcji HAVING COUNT (*)> 1. Artykuł wnika w to dogłębnie.
Jest łatwiejszy sposób
Select * Into #TempTable FROM YourTable
Truncate Table YourTable
Insert into YourTable Select Distinct * from #TempTable
Drop Table #TempTable
Nie działa Dude. Wciąż ma 48 rekordów po wykonaniu tego – Sam
Jeśli to nie działa, oznacza to, że nie są dokładnie duplikowane, ponieważ odmienność wyeliminowałaby duplikaty, czy używasz klucza podstawowego? – Raymund
Nie używam klucza podstawowego, ale mam kolumnę o identyfikatorze, która jest tożsamością – Sam
- 1. Usuwanie duplikatów z dużej tabeli
- 2. Usuwanie duplikatów rekordów w PostgreSQL
- 3. Usuwanie z tabeli z milionami rekordów
- 4. Eliminowanie duplikatów rekordów w tabeli BigQuery
- 5. Usuwanie duplikatów wierszy (nie usuwaj wszystkich duplikatów)
- 6. usuwanie duplikatów ze słownika
- 7. Usuwanie duplikatów za pomocą PigLatin
- 8. Zapytanie SQL - usuwanie duplikatów w przypadku więcej niż 3 duplikatów?
- 9. VBA, usuwanie duplikatów z tablicy
- 10. Usuwanie duplikatów elementów z tablicy
- 11. Usuwanie duplikatów z LEFT OUTER DOŁĄCZ
- 12. Usuwanie rekordów z tabeli programu SQL Server bez kursora
- 13. Usuwanie kolejnych duplikatów wpisów
- 14. usuwanie duplikatów w nsarray
- 15. NSMutableArray - usuwanie duplikatów
- 16. Usuwanie zduplikowanych wierszy z tabeli BigQuery
- 17. Podstawowy algorytm Hashtable - usuwanie duplikatów
- 18. Usuwanie duplikatów w języku Python
- 19. Usuwanie rekordów przed określoną datą
- 20. Usuwanie wszystkich rekordów z tabeli, które nie zostały pobrane z innej tabeli
- 21. pymongo: usuwanie rekordów elegancko
- 22. Usuwanie duplikatów z tablicy obiektów niestandardowych Swift
- 23. Usuwanie duplikatów z nie sortowalnego wektora
- 24. usuwanie duplikatów z tablicy w obiekcie c
- 25. Usuwanie wierszy z duplikatów w tablicy numpy
- 26. Usuwanie duplikatów z listy ciągów w python
- 27. Usuwanie duplikatów obiektów z listy (C#)
- 28. Usuwanie duplikatów odniesień z listy C#
- 29. Usuwanie duplikatów z dołu listy ogólnej
- 30. Usuwanie duplikatów migracji z repozytorium git
Jeśli jest tylko 48, załaduj SSMS i usuń je ręcznie. –