SQL Server löschen doppelte Zeilen

SQL Server löschen doppelte Zeilen

Doppelte Werte in einer Datenbank können ein Problem sein, wenn hochkarätige Vorgänge durchgeführt werden. Sie können dazu führen, dass ein einzelner Wert mehrfach verarbeitet wird und das Ergebnis verdeutelt. Doppelte Aufzeichnungen nehmen auch mehr Platz als nötig, was zu einer langsamen Leistung führt.

In diesem Handbuch verstehen Sie, wie Sie doppelte Zeilen in einer SQL Server -Datenbank finden und entfernen können.

Die Grundlagen

Bevor wir weiter fortfahren, was ist eine doppelte Zeile? Wir können eine Zeile als Duplikat klassifizieren, wenn sie einen ähnlichen Namen und einen ähnlichen Wert für eine andere Zeile in der Tabelle enthält.

Um zu veranschaulichen, wie Sie doppelte Zeilen in einer Datenbank finden und entfernen können, beginnen wir mit dem Erstellen von Beispieldaten, wie in den folgenden Abfragen gezeigt:

Verwenden Sie DuplicatedB;
Tabellenbenutzer erstellen (Benutzer
ID int Identität (1,1) nicht null,
Benutzername Varchar (20),
E -Mail Varchar (55),
Telefon Bigint,
Zustände varchar (20)
);
In Benutzer einfügen (Benutzername, E -Mail, Telefon, Staaten)
Werte ('Zero', '[email protected] ', 6819693895,' New York '),
('Gr33n', '[email protected] ', 9247563872,' Colorado '),
('Shell', '[email protected] ', 702465588,' Texas '),
('Verweil', '[email protected] ', 1452745985,' New Mexico '),
('Gr33n', '[email protected] ', 9247563872,' Colorado '),
('Zero', '[email protected] ', 6819693895,' New York ');

In der obigen Beispielabfrage erstellen wir eine Tabelle mit Benutzerinformationen. Im nächsten Klauselblock verwenden wir das Einfügen in die Anweisung, um der Tabelle der Benutzer doppelte Werte hinzuzufügen.

Finden Sie doppelte Zeilen

Sobald wir die von uns benötigten Beispieldaten haben, sollten wir in der Tabelle der Benutzer nach doppelten Werten suchen. Wir können dies mit der Anzahl der Grafen tun wie:

Wählen Sie Benutzername, E -Mail, Telefon, Staaten, zählen (*) als count_Value von Benutzerngruppen per Benutzername, E -Mail, Telefon, Staaten mit Count (*)> 1;

Das obige Code -Snippet sollte die doppelten Zeilen in der Datenbank zurückgeben und wie oft sie auf der Tabelle erscheinen.

Ein Beispielausgang ist wie gezeigt:

Als nächstes entfernen wir die doppelten Zeilen.

Doppelte Zeilen löschen

Der nächste Schritt besteht darin, doppelte Zeilen zu entfernen. Wir können dies tun, indem wir die Löschabfrage verwenden, wie im folgenden Beispiel -Snippet gezeigt:

Löschen Sie von Benutzern, wobei ID nicht in (MAX (ID) aus Benutzerngruppen nach Benutzername, E -Mail, Telefon, Staaten);

Die Abfrage sollte die doppelten Zeilen beeinflussen und die eindeutigen Zeilen in der Tabelle aufbewahren.

Wir können die Tabelle als:

Wählen Sie * von Benutzern aus;

Der resultierende Wert ist wie gezeigt:

Doppelte Zeilen löschen (Join)

Sie können auch eine Join -Anweisung verwenden, um doppelte Zeilen aus einer Tabelle zu entfernen. Ein Beispiel für Beispielabfragen ist wie unten gezeigt:

Löschen Sie A von Benutzern eine innere Verbindung
(Wählen Sie ID, Rank () Over (Partition nach Benutzername Order by ID) als Rank_ von Benutzern))
B auf a.id = b.id wo b.Rank_> 1;

Denken Sie daran, dass die Verwendung von innerem Join zum Entfernen von Duplikaten in einer umfangreichen Datenbank länger dauern kann als andere.

Doppelte Zeile löschen (row_number ())

Die Funktion row_number () weist den Zeilen in einer Tabelle eine sequentielle Nummer zu. Wir können diese Funktionalität verwenden, um Duplikate aus einer Tabelle zu entfernen.

Betrachten Sie die Beispielabfrage unten:

Verwenden Sie DuplicatedB
T
AUS
(
WÄHLEN *
, Duplicate_Rank = row_number () over (
Partition durch ID
Bestellung von (Select null)
)
Von Benutzern
) Als t
Wo duplicate_rank> 1

Die obige Abfrage sollte die von der Funktion row_number () zurückgegebene Werte verwenden, um die Duplikate zu entfernen. Eine doppelte Zeile erzeugt einen Wert höher als 1 aus der Funktion row_number ().

Abschluss

Es ist gut, Ihre Datenbanken sauber zu halten, indem Sie doppelte Zeilen aus den Tabellen entfernen. Dies hilft, die Leistung und den Speicherplatz zu verbessern. Mit den Methoden in diesem Tutorial reinigen Sie Ihre Datenbanken sicher.