Heim > Datenbank > Oracle > Hauptteil

So löschen Sie doppelte Daten in Oracle

PHPz
Freigeben: 2023-04-25 09:27:46
Original
3055 Leute haben es durchsucht

Bei der Datenverarbeitung treten häufig Probleme bei der Datenduplizierung auf. Um die Genauigkeit der Daten und die Klarheit des Data Warehouse sicherzustellen, müssen wir häufig doppelte Daten in der Datenbank löschen. In diesem Artikel erfahren Sie, wie Sie doppelte Daten in einer Oracle-Datenbank löschen.

  1. Bestimmen der Datenduplizierung

Bevor Sie doppelte Daten löschen, müssen Sie zunächst feststellen, welche Daten dupliziert sind. Wir können die SELECT-Anweisung und die GROUP BY-Anweisung verwenden, um nach doppelten Daten abzufragen. Beispielsweise haben wir eine Tabelle mit dem Namen „Tabellenname“, die ein Feld mit dem Namen „Spaltenname“ enthält. Sie können die folgende Anweisung verwenden, um alle doppelten Daten zu finden:

SELECT Spaltenname, COUNT(*) als Anzahl
FROM Tabellenname
GROUP BY Spaltenname
HAVING COUNT(*) > 1;

Diese Anweisung gibt die Summe der zurück Anzahl aller doppelten Daten. Wiederholte Feldwerte. Wenn wir alle doppelten Daten löschen möchten, können wir die folgende Anweisung verwenden:

DELETE FROM tablename
WHERE columnsname IN (SELECT columnsname
FROM tablename
GROUP BY columnsname
HAVING COUNT(*) > 1);

In this Anweisung Das Schlüsselwort „IN“ bedeutet, Duplikate im Feld „Spaltenname“ auszuwählen und diese Zeilen dann zu löschen.

  1. Daten mit ROWID deduplizieren

ROWID in der Oracle-Datenbank ist eine eindeutige Kennung in der Datenbank. Wir können ROWID verwenden, um doppelte Daten zu entfernen. Das Folgende ist ein Beispiel für die Verwendung von ROWID zum Löschen doppelter Daten:

DELETE FROM tablename
WHERE ROWID NOT IN

(SELECT MIN(ROWID) 
 FROM tablename 
 GROUP BY columnname);
Nach dem Login kopieren

Diese Anweisung löscht alle doppelten Zeilen außer der ersten doppelten Zeile. In der „SELECT“-Anweisung fragen wir nach der kleinsten ROWID des Feldes „columnname“ und vergleichen sie mit anderen doppelten Werten in der Zeilen-ID. Nur die ROWID der ersten doppelten Zeile stimmt mit keiner anderen ROWID überein und verbleibt in der Datenbank.

  1. Verwenden Sie CTE, um doppelte Daten zu entfernen.

Die Verwendung allgemeiner Tabellenausdrücke (CTE) ist auch eine Möglichkeit, doppelte Daten zu entfernen. Das Folgende ist ein Beispiel für die Verwendung von CTE zum Entfernen doppelter Daten:

WITH cte AS

(SELECT columnname, 
        ROW_NUMBER() OVER 
            (PARTITION BY columnname ORDER BY columnname) AS rn 
 FROM tablename)
Nach dem Login kopieren

DELETE FROM cte
WHERE rn > 1;

In diesem Beispiel verwenden wir die „SELECT“-Anweisung, um den CTE „cte“ zu benennen ". Diese Anweisung verwendet die Funktion ROW_NUMBER(), um die Daten basierend auf dem Feld „Spaltenname“ in aufsteigender Reihenfolge (ORDER BY) zu partitionieren und zu sortieren. Danach löschen wir alle Zeilen, in denen „rn“rn“ größer als 1 ist.

  1. Verwenden Sie das Schlüsselwort DISTINCT, um doppelte Daten zu entfernen.

Die letzte Möglichkeit, doppelte Daten in der Oracle-Datenbank zu entfernen, ist die Verwendung des Schlüsselworts DISTINCT. Hier ist So verwenden Sie DISTINCT Beispiel für die Schlüsselwortdeduplizierung:

DELETE FROM tablename
WHERE columnsname NOT IN

(SELECT DISTINCT columnname 
 FROM tablename);
Nach dem Login kopieren

In diesem Beispiel verwenden wir eine verschachtelte SELECT-Anweisung. In der Unterabfrage verwenden wir das DISTINCT-Schlüsselwort, um den eindeutigen „columnname“ zu finden „.“ Wert und vergleichen Sie ihn mit dem Feld „Spaltenname“. Diese Anweisung entfernt alle doppelten Daten, die in den Ergebnissen der Unterabfrage enthalten sind.

Zusammenfassung

Das Entfernen doppelter Daten ist ein wichtiger Schritt bei der Datenverarbeitung. Oracle Database bietet viele Möglichkeiten Um doppelte Zeilen zu löschen, können wir die SELECT-Anweisung und die GROUP BY-Anweisung verwenden, um zu bestimmen, welche Daten dupliziert werden, und dann die DELETE-Anweisung verwenden, um die Daten zu löschen Um doppelte Daten in der Datenbank zu entfernen, können wir die Datengenauigkeit und die Klarheit des Data Warehouse sicherstellen

Das obige ist der detaillierte Inhalt vonSo löschen Sie doppelte Daten in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage