Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:oracle_analytic_functions_doubletten

Oracle Analytic Function - Beispiel 3 - Doppelte Daten / Dubletten finden und löschen

Aufgabe: In einer Tabelle befinden sich doppelte Daten, die doppelten Datensätze sollen gefunden und gelöscht werden.

Lösung: pro gleichen Datensatz wird eine fortlaufende Nummer mit der ROW_NUMBER() Funktion vergeben:

-- testdaten aus Beispiel 1 
--
 
SELECT id
     , rowid
     , ROW_NUMBER( ) OVER( partition BY id ORDER BY id ) rang 
 FROM t
/
 
   ID ROWID                      RANG
----- ------------------ ------------
 
  857 AAAj6YAAEAAALSkADH            1
  857 AAAj6YAAEAAALULADE            2
 
  858 AAAj6YAAEAAALSkADI            1
  858 AAAj6YAAEAAALULADF            2
-- gleiche Daten unterscheiden sich nun um die Rang Number
 
 
-- löschen
--
DELETE FROM t
      WHERE rowid IN( 
        SELECT rowid FROM ( SELECT  rowid
                                  , ROW_NUMBER() OVER( partition BY id ORDER BY id) rang
                            FROM t )
        WHERE rang > 1 )
/        
 
56033 Zeilen wurden gelöscht.

Mehr Beispiele: Oracle Analytic Functions im praktischen Einsatz

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
prog/oracle_analytic_functions_doubletten.txt · Zuletzt geändert: 2016/06/15 11:22 von gpipperr