Heim  >  Artikel  >  Datenbank  >  So entfernen Sie doppelte Datensätze in Oracle

So entfernen Sie doppelte Datensätze in Oracle

PHPz
PHPzOriginal
2023-04-17 09:19:462831Durchsuche

Oracle ist eines der größten relationalen Datenbankverwaltungssysteme der Welt. Seine leistungsstarken Funktionen und sein breites Anwendungsspektrum machen es zu einem unverzichtbaren Bestandteil von Anwendungen auf Unternehmensebene. In diesen Anwendungen ist die Datendeduplizierung eine häufige Aufgabe. Das Entfernen doppelter Datensätze kann die Datenqualität verbessern und den Speicherplatz und die Abfragezeit reduzieren.

In Oracle können Sie mehrere Methoden verwenden, um doppelte Datensätze zu entfernen:

  1. DISTINCT-Schlüsselwort

Die Verwendung des DISTINCT-Schlüsselworts gibt eine eindeutige Ergebnismenge zurück, was bedeutet, dass es keine doppelten Datensätze gibt. Die folgende Abfrage gibt beispielsweise alle eindeutigen Kundennamen zurück:

SELECT DISTINCT CUSTOMER_NAME FROM CUSTOMERS;

  1. GROUP BY-Klausel

GROUP BY-Klausel wird zum Gruppieren verwendet und gibt eine einzelne Zeile für jede Gruppe zurück. Durch die Kombination einiger Spalten können Sie eindeutige Werte finden. Die folgende Abfrage gibt beispielsweise die Anzahl der Kunden in jeder Stadt zurück:

SELECT CITY, COUNT(*) FROM CUSTOMERS GROUP BY CITY

  1. Funktion zum Entfernen doppelter Zeilen

Oracle enthält mehrere integrierte Funktionen zum Entfernen doppelte Datensätze, zum Beispiel:

  • MIN(): Gibt den Mindestwert in der Gruppe zurück.
  • MAX(): Gibt den Maximalwert in der Gruppe zurück.
  • AVG(): Gibt den Durchschnittswert in der Gruppe zurück.
  • SUM(): Gibt die Summe der Werte in der Gruppe zurück.

Die folgende Abfrage gibt die Anzahl der eindeutigen Adressen in der Kundentabelle zurück:

SELECT COUNT(DISTINCT ADDRESS) FROM CUSTOMERS;

  1. Verwenden einer Fensterfunktion

Eine Fensterfunktion ist eine spezielle Funktion, die das Ganze zählt Ergebnissatzwert statt einer separaten Zeile. Verwenden Sie Fensterfunktionen, um doppelte Datensätze zu entfernen und gleichzeitig die Originaldaten beizubehalten.

Die folgende Abfrage gibt die letzten 20 Verkaufsdatensätze sortiert nach Verkaufszeit zurück, ohne doppelte Verkaufsdatensätze beizubehalten:

SELECT * FROM (
SELECT

ROW_NUMBER() OVER(PARTITION BY SALE_DATE ORDER BY SALE_AMOUNT DESC) RN,
SALE_ID, 
SALE_AMOUNT, 
SALE_DATE

FROM

SALES

) WHERE RN <= 20;

Zusammenfassung

Oracle verfügt über viele Methoden zum Löschen doppelter Datensätze, einschließlich des DISTINCT-Schlüsselworts, der GROUP BY-Klausel, der Funktion zum Entfernen doppelter Zeilen und der Fensterfunktion. Der Einsatz dieser Methoden kann die Datenqualität verbessern und den Speicherplatz und die Abfragezeit reduzieren.

Das obige ist der detaillierte Inhalt vonSo entfernen Sie doppelte Datensätze in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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