Seleccionar y borrar registros duplicados en una tabla SQL
Vamos a mostrar un camino corto pero efectivo para seleccionar y borrar registros duplicados en una tabla de MSSQL o MySQL.
En algún momento se requiere encontrar registros duplicados en nuestra tabla. He aquí una solución simple de consulta SQL. Miremos un poco más.
Bueno, yo voy a crear una tabla sencilla en la base de datos AdventureWorks.
use adventureworks GO Create Table SeleccionDuplicada ( ID int identity(1,1) not null, Fname varchar(10) not null, Lname varchar(10) not null, City varchar(10) not null ) |
Ahora se va ingresar algunos registros en la tabla creada anteriormente.
INSERT INTO SeleccionDuplicada VALUES(‘Charles’,’Virginia’,’Zafir’) INSERT INTO SeleccionDuplicada VALUES(‘Avril’,’Sergey’,’Edison’) INSERT INTO SeleccionDuplicada VALUES(‘Robert’,’Kalaria’,’MSSQL’) INSERT INTO SeleccionDuplicada VALUES(‘Charles’,’Chaplin’,’Windows’) INSERT INTO SeleccionDuplicada VALUES(‘Robert’,’Kalar’,’Zafir’) |
Ahora ejecutamos la siguiente sentencia SQL.
SELECT * FROM SeleccionDuplicada WHERE ID NOT IN ( SELECT MAX(ID) FROM SeleccionDuplicada GROUP BY Fname,Lname ) |
Es de señalar que hay muchos caminos para borrar los registros duplicados de la base de datos, y obviamente podemos borrar estos registros solamente con cambiar el primer “SELECT*” a “DELETE” como en el siguiente código.
DELETE FROM SeleccionDuplicada WHERE ID NOT IN ( SELECT MAX(ID) FROM SeleccionDuplicada GROUP BY Fname,Lname ) |
Comment (1)
hola muy buena explicacion, pero una pregunta si yo quiero eliminar registros duplicados que contengan la misma informacion en 6 campos seleccionados se puede hacer?
ejemplo: NOMBRE PAQ HISTORIA CAJA
JULIAN RAMI 18 15 36
JULIAN RAMI 17 3 25
JULIAN RAMI 18 15 36
NECESITO QUE ELIMINE UNO DE LOS QUE SE REPITE EN ESTOS 4 CAMPOS. ES POSIBLE????