Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Eliminacion de registros duplicados

Estas en el tema de Eliminacion de registros duplicados en el foro de Oracle en Foros del Web. Buenas gente, Os comento cual es el caso, y es que tengo una tabla (del año maria castaña) con un campo que supuestamente es el ...
  #1 (permalink)  
Antiguo 17/03/2010, 02:43
 
Fecha de Ingreso: agosto-2006
Mensajes: 174
Antigüedad: 18 años, 4 meses
Puntos: 2
Eliminacion de registros duplicados

Buenas gente,

Os comento cual es el caso, y es que tengo una tabla (del año maria castaña) con un campo que supuestamente es el primary key y otra serie de campos. Esta tabla no tiene primary key, y el campo este es un campo autonumerico, y lo que verdaderamente identificaria a un registro es un conjunto de campos de la tabla. Mi problema es que tengo registros duplicados pero con diferente campo autonumerico. Les pongo un ejemplo

id campo1 campo2 campo3 campo4
1 x y z w
34 x y z w
4 a b c d

Teniendo este campo, me gustaria elimiar de la tabla de los dos registros repetidos con diferente id (1 y 34), quedarme con el id mas alto, que supuestamente es el mas actual y eliminar el registro con id 1.

No se si me explico bien.

Saludos
  #2 (permalink)  
Antiguo 17/03/2010, 07:37
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Eliminacion de registros duplicados

Con esto lo puedes borrar

Código SQL:
Ver original
  1. SQL> SELECT *FROM borrar;
  2.  
  3.         ID CA CA CA CAMP
  4. ---------- -- -- -- ----
  5.          1 x  y  z  w
  6.         34 x  y  z  w
  7.          4 a  b  c  d
  8.          5 a  b  c  d
  9.  
  10. SQL> DELETE FROM borrar WHERE ((campo1 || campo2 || campo3 || campo4),id)
  11. IN
  12. (SELECT t1.campos,MIN(t1.id) minimo FROM
  13. (SELECT (campo1 || campo2 || campo3 || campo4) campos,id FROM borrar)t1
  14. GROUP BY t1.campos);  2    3    4    5  
  15.  
  16. 2 filas suprimidas.
  17.  
  18. SQL> commit;
  19.  
  20. Confirmacion terminada.
  21.  
  22. SQL> SELECT *FROM borrar;
  23.  
  24.         ID CA CA CA CAMP
  25. ---------- -- -- -- ----
  26.         34 x  y  z  w
  27.          5 a  b  c  d


saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: duplicados, eliminacion, registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:46.