Der Umgang mit doppelten Werten in SQL kann eine mühsame Aufgabe sein. Aber keine Angst, dieser Leitfaden soll Ihnen die Last erleichtern.
Daten gibt es in allen Formen und Formen, aber doppelte Datensätze sind ein wichtiger Bestandteil jedes Datenformats. Unabhängig davon, ob Sie mit webbasierten Daten arbeiten oder einfach durch eine Menge Verkaufsdaten navigieren, wird Ihre Analyse verzerrt, wenn Sie doppelte Werte haben.
Verwenden Sie SQL, um Ihre Zahlen zu berechnen und lange Abfragen in Ihren Datenstapeln durchzuführen? Wenn ja, dann wird dieser Leitfaden zum Verwalten von SQL-Duplikaten eine absolute Freude für Sie sein.
Hier sind einige verschiedene Möglichkeiten, wie Sie Duplikate mithilfe von SQL verwalten können.
1. Zählen von Duplikaten mithilfe der Funktion „Gruppieren nach“.
SQL ist eine vielseitige Programmiersprache, die verschiedene Funktionen zur Vereinfachung von Berechnungen bietet. Wenn Sie viel Erfahrung mit den Aggregationsfunktionen in SQL haben, sind Sie möglicherweise bereits damit vertraut Gruppieren Sie nach Funktion und wofür sie verwendet werden kann.
Der gruppiere nach Funktion ist eine der Die meisten grundlegenden SQL-Befehle, was ideal für den Umgang mit mehreren Datensätzen ist, da Sie verschiedene Aggregatfunktionen wie verwenden können Summe, zählen, Durchschnitt, und viele andere in Verbindung mit dem gruppiere nach Funktion, um einen eindeutigen zeilenweisen Wert zu erhalten.
Abhängig vom Szenario können Sie Duplikate mit dem finden gruppiere nach Funktion innerhalb einer einzelnen Spalte und mehrerer Spalten.
A. Zählen Sie Duplikate in einer einzelnen Spalte
Angenommen, Sie haben die folgende Datentabelle mit zwei Spalten: Produkt ID Und Aufträge.
Produkt ID |
Aufträge |
2 |
7 |
2 |
8 |
2 |
10 |
9 |
6 |
10 |
1 |
10 |
5 |
12 |
5 |
12 |
12 |
12 |
7 |
14 |
1 |
14 |
1 |
47 |
4 |
47 |
4 |
Um doppelte Produkt-IDs zu finden, können Sie die verwenden gruppiere nach Funktion und die haben -Klausel zum Filtern der aggregierten Werte wie folgt:
wählen Produkt ID, zählen(Produkt ID) als Komplette Anzahl
von sahil.product_dups
Nach Produkt-ID gruppieren
mit count (productid) > 1
Bestellung nach Produkt-ID;
Wie bei einer typischen SQL-Anweisung müssen Sie zunächst die Spalten definieren, die im Endergebnis angezeigt werden sollen. In diesem Fall möchten wir die Anzahl der doppelten Werte innerhalb anzeigen Produkt ID Spalte.
Definieren Sie im ersten Segment die Produkt ID Spalte innerhalb der wählen Stellungnahme. Der zählen Funktion folgt dem Produkt ID Referenz, damit SQL den Zweck Ihrer Abfrage versteht.
Als nächstes definieren Sie die Quelltabelle mithilfe von aus Klausel. Seit zählen ist eine Aggregationsfunktion, die Sie verwenden müssen gruppiere nach Funktion zum Gruppieren aller ähnlichen Werte.
Denken Sie daran, dass die Idee darin besteht, die doppelten Werte innerhalb aufzulisten Produkt ID Spalte. Dazu müssen Sie die Anzahl filtern und Werte anzeigen, die mehr als einmal in der Spalte vorkommen. Der haben Klausel filtert die aggregierten Daten; Sie können die Bedingung verwenden, d. h. count (productid) >1, um die gewünschten Ergebnisse anzuzeigen.
Endlich, das Sortieren nach Die Klausel sortiert die Endergebnisse in aufsteigender Reihenfolge.
Die Ausgabe ist wie folgt:
B. Zählen Sie Duplikate in mehreren Spalten
Wenn Sie Duplikate in mehreren Spalten zählen, aber nicht mehrere SQL-Abfragen schreiben möchten, können Sie den obigen Code mit ein paar Änderungen erweitern. Wenn Sie beispielsweise doppelte Zeilen in mehreren Spalten anzeigen möchten, können Sie den folgenden Code verwenden:
wählen Produkt-ID, Bestellungen, zählen(*) als Komplette Anzahl
von sahil.product_dups
Gruppieren nach Produkt-ID, Bestellungen
mit count (productid) > 1
Bestellung nach Produkt-ID;
In der Ausgabe werden Sie feststellen, dass nur zwei Zeilen angezeigt werden. Wenn Sie die Abfrage optimieren und die Referenz beider Spalten innerhalb der hinzufügen wählen -Anweisung erhalten Sie eine Anzahl übereinstimmender Zeilen mit doppelten Werten.
Anstatt der Anzahl (Spalte) Funktion müssen Sie die übergeben zählen(*) Funktion, um doppelte Zeilen zu erhalten. Der * Die Funktion schaltet durch alle Zeilen und sucht nach doppelten Zeilen anstelle einzelner doppelter Werte.
Die Ausgabe wird unten angezeigt:
Da die Bestellwerte gleich sind, werden die entsprechenden Zeilen mit der Produkt-ID 14 und 47 angezeigt.
2. Markieren von Duplikaten mit der Funktion row_number()
Während gruppiere nach Und haben Die Kombination ist die einfachste Möglichkeit, Duplikate in einer Tabelle zu finden und zu kennzeichnen. Es gibt eine alternative Möglichkeit, Duplikate mithilfe der zu finden Zeilennummer() Funktion. Der Zeilennummer() Funktion ist ein Teil der SQL-Fensterfunktionen Kategorie und ist für die effiziente Bearbeitung Ihrer Anfragen unerlässlich.
So können Sie Duplikate mit dem kennzeichnen Zeilennummer() Funktion:
wählen Produkt-ID, Bestellungen,
row_number() über (Partition nach Produkt-ID, Reihenfolge nach Produkt-ID) als Sno
von sahil.product_dups;
Der Zeilennummer() Die Funktion durchsucht jeden Produkt-ID-Wert und ermittelt die Anzahl der Wiederholungen für jede ID. Der Partition Das Schlüsselwort trennt die doppelten Werte und weist Werte chronologisch zu, z. B. 1, 2,3 usw.
Wenn Sie das nicht verwenden Partition Wenn Sie das Schlüsselwort eingeben, erhalten Sie eine eindeutige Seriennummer für alle Produkt-IDs, was für Ihren Zweck nicht geeignet ist.
Der Sortieren nach Die Klausel innerhalb des Partitionsabschnitts ist bei der Definition der Sortierreihenfolge funktionsfähig. Sie können zwischen aufsteigender (Standard) und absteigender Reihenfolge wählen.
Abschließend können Sie der Spalte einen Alias zuweisen, um sie später (bei Bedarf) einfacher filtern zu können.
3. Löschen doppelter Zeilen aus einer SQL-Tabelle
Da doppelte Werte in einer Tabelle Ihre Analyse verfälschen können, ist es oft unerlässlich, sie während der Datenbereinigungsphase zu entfernen. SQL ist eine wertvolle Sprache, die Möglichkeiten bietet, Ihre doppelten Werte effizient zu verfolgen und zu löschen.
A. Verwenden des eindeutigen Schlüsselworts
Der unterscheidbar Das Schlüsselwort ist wahrscheinlich die häufigste und am häufigsten verwendete SQL-Funktion zum Entfernen doppelter Werte in einer Tabelle. Sie können Duplikate aus einer einzelnen Spalte oder sogar doppelte Zeilen auf einmal entfernen.
So können Sie Duplikate aus einer einzelnen Spalte entfernen:
wählenunterscheidbar Produkt ID aus sahil.product_dups;
Die Ausgabe gibt eine Liste aller eindeutigen Produkt-IDs aus der Tabelle zurück.
Um doppelte Zeilen zu entfernen, können Sie den obigen Code wie folgt anpassen:
wählenunterscheidbar * aus sahil.product_dups;
Die Ausgabe gibt eine Liste aller eindeutigen Zeilen aus der Tabelle zurück. Wenn Sie sich die Ausgabe ansehen, werden Sie feststellen, dass die Produkt-IDs 14 und 47 nur einmal in der Endergebnistabelle vorkommen.
B. Verwendung der Common Table Expression (CTE)-Methode
Die Common Table Expression (CTE)-Methode unterscheidet sich geringfügig vom gängigen SQL-Code. CTEs ähneln Temporäre Tabellen von SQL, mit dem einzigen Unterschied, dass sie virtuell sind, auf die Sie nur während der Ausführung der Abfrage verweisen können.
Der größte Vorteil besteht darin, dass Sie keine separate Abfrage übergeben müssen, um diese Tabellen später zu löschen, da sie nicht mehr existieren, sobald die Abfrage ausgeführt wird. Mit der CTE-Methode können Sie den folgenden Code verwenden, um Duplikate zu finden und zu löschen.
mit cteproducts als
(wählen Produkt-ID, Bestellungen,
row_number() über (Partition nach Produkt-ID, Reihenfolge nach Produkt-ID) als Sno
von sahil.product_dups)
wählen * aus cteproducts
wobei sno = 1;
Sie können die CTE-Funktion mit aufrufen mit Stichwort; Definieren Sie den Namen der temporären virtuellen Tabelle nach dem mit Stichwort. Die CTE-Tabellenreferenz ist beim Filtern der Tabellenwerte hilfreich.
Weisen Sie im nächsten Teil Ihren Produkt-IDs mithilfe von Zeilennummern zu Zeilennummer() Funktion. Da Sie jede Produkt-ID mit a referenzieren Partition Funktion hat jede wiederkehrende ID einen eindeutigen Wert.
Filtern Sie abschließend die neu erstellten Snö Spalte im letzten Segment mit einer anderen wählen Stellungnahme. Setzen Sie diesen Filter auf 1, um in der endgültigen Ausgabe eindeutige Werte zu erhalten.
Lernen Sie, SQL auf einfache Weise zu verwenden
SQL und seine Varianten sind aufgrund ihrer angeborenen Fähigkeit, relationale Datenbanken abzufragen und zu verwenden, in aller Munde. Vom Schreiben einfacher Abfragen bis hin zur Durchführung aufwändiger Analysen mit Unterabfragen bietet diese Sprache von allem etwas.
Bevor Sie jedoch Fragen schreiben, müssen Sie Ihre Fähigkeiten verfeinern und sich mit den Codes vertraut machen, um ein erfahrener Programmierer zu werden. Sie können SQL auf spielerische Weise erlernen, indem Sie Ihr Wissen in Spielen umsetzen. Lernen Sie einige ausgefallene Codierungsnuancen kennen, indem Sie Ihrem Code ein wenig Spaß verleihen.