SQL Server usuwają zduplikowane wiersze

SQL Server usuwają zduplikowane wiersze

Duplikowane wartości w bazie danych może być problemem podczas wykonywania bardzo dokładnych operacji. Mogą prowadzić do przetwarzania pojedynczej wartości wielokrotnie, co oznacza, że ​​wynik. Duplikat zapisów zajmuje również więcej miejsca niż to konieczne, co prowadzi do powolnej wydajności.

W tym przewodniku zrozumiesz, w jaki sposób możesz znaleźć i usunąć zduplikowane wiersze w bazie danych SQL Server.

Podstawy

Zanim przejdziemy dalej, jaki jest zduplikowany rząd? Możemy sklasyfikować wiersz jako duplikat, jeśli zawiera podobną nazwę i wartość do innego wiersza na tabeli.

Aby zilustrować, jak znaleźć i usunąć zduplikowane wiersze w bazie danych, zacznijmy od utworzenia przykładowych danych, jak pokazano na poniższych zapytaniach:

Użyj DuplicationB;
Utwórz użytkowników tabeli (
Id Int tożsamość (1,1) nie null,
Nazwa użytkownika Varchar (20),
e -mail varchar (55),
Bigint Phone,
stany varchar (20)
);
Wstaw do użytkowników (nazwa użytkownika, e -mail, telefon, stany)
Wartości („zero”, „[email protected] ', 6819693895, „New York”),
(„Gr33n”, „[email protected] ', 9247563872, „Colorado”),
(„Shell”, „[email protected] ', 702465588, „Texas”),
(„mieszkanie”, „[email protected] ', 1452745985, „Nowy Meksyk”),
(„Gr33n”, „[email protected] ', 9247563872, „Colorado”),
(„Zero”, „[email protected] ', 6819693895, „Nowy Jork”);

W powyższym zapytaniu tworzymy tabelę zawierającą informacje o użytkowniku. W następnym bloku klauzuli używamy wstawki do instrukcji, aby dodać zduplikowane wartości do tabeli użytkowników.

Znajdź zduplikowane wiersze

Gdy potrzebujemy przykładowych danych, sprawdźmy duplikat wartości w tabeli użytkowników. Możemy to zrobić za pomocą funkcji liczby jako:

Wybierz nazwę użytkownika, e -mail, telefon, stany, liczba (*) jako wartość hrabia od grupy użytkowników według nazwy użytkownika, e -maila, telefonu, stanów mających liczbę (*)> 1;

Powyższy fragment kodu powinien zwrócić zduplikowane wiersze w bazie danych i ile razy pojawiają się na tabeli.

Przykładem jest to, jak pokazano:

Następnie usuwamy zduplikowane wiersze.

Usuń zduplikowane wiersze

Następnym krokiem jest usunięcie zduplikowanych wierszy. Możemy to zrobić za pomocą zapytania Usuń, jak pokazano na przykładowym fragmencie:

Usuń od użytkowników, w których identyfikator nie jest w (wybierz maks. (ID) z grupy użytkowników według nazwy użytkownika, e -maila, telefonu, stanów);

Zapytanie powinno wpływać na zduplikowane wiersze i zachować unikalne rzędy w tabeli.

Możemy wyświetlić tabelę jako:

Wybierz * od użytkowników;

Powstała wartość jest jak pokazana:

Usuń zduplikowane wiersze (dołącz)

Możesz także użyć instrukcji łączenia, aby usunąć zduplikowane wiersze z tabeli. Przykładowy przykładowy kod zapytania jest jak pokazano poniżej:

Usuń od użytkowników dołączenie wewnętrzne
(Wybierz id, rank () ponad (partycja według kolejności nazwy użytkownika według identyfikatora) jako rank_ od użytkowników)
B na.id = b.Id gdzie b.rank_> 1;

Należy pamiętać, że użycie wewnętrznego połączenia do usuwania duplikatów może potrwać dłużej niż inne w obszernej bazie danych.

Usuń duplikat wierszy (row_number ())

Funkcja Row_Number () przypisuje numer sekwencyjny do wierszy w tabeli. Możemy użyć tej funkcji do usunięcia duplikatów z tabeli.

Rozważ przykładowe zapytanie poniżej:

Użyj DuplicativeB
Usuń t
Z
(
WYBIERAĆ *
, duplicate_rank = row_number () Over (
Partycja według id
Zamów przez (wybierz NULL)
)
Od użytkowników
) Jak t
Gdzie duplikat_rank> 1

Powyższe zapytanie powinno używać wartości zwróconych z funkcji Row_Number (), aby usunąć duplikaty. Duplikat wierszy wytworzy wartość wyższą niż 1 z funkcji row_number ().

Wniosek

Utrzymanie w czystości bazy danych poprzez usunięcie zduplikowanych wierszy z tabel jest dobre. Pomaga to poprawić wydajność i przestrzeń do przechowywania. Korzystając z metod w tym samouczku, bezpiecznie wyczyścisz bazy danych.