Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:oracle_analytic_functions_doubletten

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
prog:oracle_analytic_functions_doubletten [2014/02/17 21:04] gpipperrprog:oracle_analytic_functions_doubletten [2016/06/15 11:22] (aktuell) gpipperr
Zeile 1: Zeile 1:
 +===== 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:
 +<code sql>
 +
 +-- 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.
 +
 +</code> 
 +
 +Mehr Beispiele: [[prog:oracle_analytic_functions|Oracle Analytic Functions im praktischen Einsatz]]
 +
  
prog/oracle_analytic_functions_doubletten.txt · Zuletzt geändert: 2016/06/15 11:22 von gpipperr