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

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
prog/oracle_analytic_functions_doubletten.txt · Zuletzt geändert: 2016/06/15 11:22 von Gunther Pippèrr