Suchen Sie doppelte Zeilen in der Oracle -Datenbank

Suchen Sie doppelte Zeilen in der Oracle -Datenbank

Wenn Sie mit Datenbanken arbeiten, stoßen Sie häufig Instanzen, in denen Sie doppelte Zeilen in einer bestimmten Datenbanktabelle finden müssen. Durch das Finden von Duplikaten können Sie das Verhältnis identischer Werte zu allen Werten in der Tabelle bestimmen.

Sie können dann die gesammelten Informationen verwenden, um zu handeln, z. B. das Entfernen von doppelten Werten oder das Verschieben in eine temporäre Tabelle usw.

In diesem Beitrag erfahren wir, wie wir in einer Oracle -Tabelle mit Oracle -Aggregat- oder Analysefunktionen doppelte Werte finden können.

Einrichten von Beispieltabellen und Daten einrichten

Lassen Sie uns Beispieldaten für Abbildungszwecke einrichten, um am besten zu verstehen, wie die Oracle -Funktionen verwendet werden, um doppelte Werte zu finden.

Wenn Sie eine vorhandene Tabelle haben, die Sie verwenden möchten, können Sie diesen Abschnitt überspringen. Führen Sie ansonsten die folgende Anweisung aus, um eine Beispieltabelle zu erstellen:

Erstellen Sie Tabellenbestellungen_information
(
ID -Nummer nicht null,
Kunden varchar2 (50) nicht null,
order_date Datum,
product_id nummer,
Mengenzahl,
Preisnummer,
Einschränkung order_info_pk primärer Key (ID)
);

Fügen Sie als nächstes Beispieldaten mit doppelten Werten hinzu, wie gezeigt:

Einfügen in Bestellungen_information (ID, Kunde, Order_date, product_id, Menge, Preis)
Werte (1, 'Beatriz', Datum '2022-10-10', 4500, 45, 56);
Einfügen in Bestellungen_information (ID, Kunde, Order_date, product_id, Menge, Preis)
Werte (2, 'Ali', Datum '2022-10-10', 5400, 65, 109);
Einfügen in Bestellungen_information (ID, Kunde, Order_date, product_id, Menge, Preis)
Werte (3, 'Gabriel', Datum '2022-10-11', 6400, 405, 586);
Einfügen in Bestellungen_information (ID, Kunde, Order_date, product_id, Menge, Preis)
Werte (4, 'Beatriz', Datum '2022-10-11', 5800, 55, 550);
Einfügen in Bestellungen_information (ID, Kunde, Order_date, product_id, Menge, Preis)
Werte (5, 'Beatriz', Datum '2022-10-12', 4506, 46, 700);
Einfügen in Bestellungen_information (ID, Kunde, Order_date, product_id, Menge, Preis)
Werte (6, 'Gabriel', Datum '2022-10-11', 9001, 450, 5600);
Einfügen in Bestellungen_information (ID, Kunde, Order_date, product_id, Menge, Preis)
Werte (7, 'Beatriz', Datum '2022-10-10', 4500, 45, 56);
Einfügen in Bestellungen_information (ID, Kunde, Order_date, product_id, Menge, Preis)
Werte (8, 'Ali', Datum '2022-10-10', 5400, 65, 109);

Sobald die Tabelle und die Beispieldaten fertig sind, können wir lernen, wie man die doppelten Zeilen findet.

Oracle Finden Sie doppelte Zeilen - Analytische Funktion

In Oracle können wir die Funktion count () in Verbindung mit Over und Partition per Klausel verwenden, um die Anzahl der doppelten Datensätze in einer bestimmten Tabelle zu bestimmen.

Nehmen Sie die unten angegebene Beispielanweisung.

Bestellungen auswählen.*, count (*) over (Partition nach Kunden, order_date) number_of_occurence
aus Bestellungen_Informationsaufträge;

Die obige Abfrage sollte die Zeile zurückgeben und die Häufigkeit, mit der sie in der Tabelle auftritt, wie gezeigt:

Um nur die Datensätze zu erhalten, die mehr als einmal erscheinen, können wir eine Where -Klausel verwenden wie:

mit item_count as (Auswählen Bestellungen.*, count (*) over (Partition nach Kunden, order_date) number_of_occurence
aus Bestellungen_Informationsaufträge)
wählen *
von item_count
wo number_of_occurence> 1;

Ausgang:

Oracle Finden Sie doppelte Werte - Aggregatfunktion

Eine andere Methode, mit der wir doppelte Datensätze in einer Tabelle finden können, ist die Gruppe nach Klausel. Wir können dann bestimmen, wie oft ein bestimmter Datensatz in jeder Gruppe mit der Funktion count () erfolgt. Wenn eine Zeile mehr als einmal erscheint, handelt es sich um ein Duplikat.

Ein Beispiel ist wie gezeigt:

wählen *
aus ordners_information
wo (Kunde, order_date) in
(Wählen Sie Kunde, Order_date aus ordners_informationsgruppen nach Kunden, order_date mit count (*)> 1)
Bestellung nach Kunden, order_date;

Die resultierenden Informationen sind wie gezeigt:

Wie wir sehen können, ermöglicht die Abfrage es uns, doppelte Zeilen aus der Zieltabelle zu erhalten.

Abschluss

In diesem Tutorial haben Sie zwei Hauptmethoden zur Bestimmung doppelter Zeilen aus einer bestimmten Datenbank entdeckt.