Tengo una tabla llamada Tabla1 que tiene 48 registros. De los cuales solo 24 deberían estar ahí en esa tabla. Por alguna razón, tengo registros duplicados insertados en él. ¿Cómo elimino los registros duplicados de esa tabla?Eliminación de registros duplicados de una tabla
Respuesta
Aquí hay algo que usted puede probar si la versión de SQL Server es 2005 o más tarde.
WITH cte AS
(
SELECT {list-of-columns-in-table},
row_number() over (PARTITION BY {list-of-key-columns} ORDER BY {rule-to-determine-row-to-keep}) as sequence
FROM myTable
)
DELETE FROM cte
WHERE sequence > 1
Este utiliza una expresión de tabla común (CTE) y añade una columna de secuencia. {list-of-columns-in-table} es como dice. No todas las columnas son necesarias, pero no explicaré aquí.
Las {list-of-key-columns] son las columnas que usa para definir qué es un duplicado.
{rule-to-determine-row-to-keep} es una secuencia para que la primera fila sea la fila que se debe conservar. Por ejemplo, si desea mantener la fila más antigua, usaría una columna de fecha para la secuencia.
Aquí hay un ejemplo de la consulta con columnas reales.
WITH cte AS
(
SELECT ID, CourseName, DateAdded,
row_number() over (PARTITION BY CourseName ORDER BY DateAdded) as sequence
FROM Courses
)
DELETE FROM cte
WHERE sequence > 1
este ejemplo se quita filas duplicadas basándose en el valor CoursName y mantiene el basesd más antigua en el valor DateAdded.
http://support.microsoft.com/kb/139444
Esta sección es la clave . El primario punto que debe llevar. ;)
En este artículo se analiza cómo localizar y eliminar las claves principales duplicadas de una mesa. Sin embargo, debe examinar de cerca el proceso que permitió que los duplicados sucedan para evitar recurrencia.
Identifique sus registros agrupando datos por sus claves lógicas, ya que obviamente no los ha definido, y aplicando una declaración HAVING COUNT (*)> 1 al final. El artículo entra en esto en profundidad.
Esta es una manera más fácil
Select * Into #TempTable FROM YourTable
Truncate Table YourTable
Insert into YourTable Select Distinct * from #TempTable
Drop Table #TempTable
No funciona Dude. Todavía tiene 48 registros después de hacer esto – Sam
Si esto no funciona, significa que no están exactamente duplicados ya que los distintos eliminarían los duplicados, ¿está utilizando una clave principal? – Raymund
No estoy usando la clave principal pero tengo una columna llamada id que es de identidad – Sam
- 1. Eliminación de registros duplicados en una tabla de BigQuery
- 2. SQL: eliminación de registros duplicados en SQL Server
- 3. SQL: La eliminación de registros duplicados - aunque diferentes tipos
- 4. Eliminación de caracteres duplicados de una cadena
- 5. Eliminación de registros en la tabla de muchos a muchos
- 6. la eliminación de duplicados del diccionario
- 7. Eliminación de todos los registros de una tabla que no se hace referencia a otra tabla
- 8. Eliminar duplicados de una tabla
- 9. Eliminar duplicados de una tabla grande
- 10. eliminar registros duplicados de una tabla de SQL sin una clave primaria
- 11. Eliminar registros duplicados en PostgreSQL
- 12. Eliminación de registros antes de una fecha determinada
- 13. Eliminación de valores duplicados de una matriz de PowerShell
- 14. Python: la eliminación de duplicados de una lista de listas
- 15. Técnicas para encontrar cerca de registros duplicados
- 16. Eliminación de duplicados de una cadena en Java
- 17. la eliminación de duplicados utilizando comparaciones personalizados
- 18. Eliminación de filas duplicadas de una tabla
- 19. MySQL - Eliminación de duplicados y preservación de datos valiosos?
- 20. Consulta SQL para registros no duplicados
- 21. Eliminar registros duplicados usando MapReduce
- 22. filas con Eliminación de duplicados en una matriz NumPy
- 23. Eliminar registros duplicados de la vista
- 24. MSSQL de consulta para borrar registros duplicados de una tabla dejando las filas distintas en la tabla
- 25. ¿Eliminar registros duplicados en SQL Server?
- 26. la eliminación de duplicados utilizando partición por SQL Server
- 27. SSMS permite registros duplicados en una tabla, pero no actualizaciones posteriores
- 28. ActiveRecord: la eliminación de registros asociados
- 29. Mysql Seleccione pares recíprocos de registros, sin duplicados
- 30. Verificar registros duplicados VS try/catch Restricción de clave única
Si solo hay 48, cargue SSMS y elimínelos manualmente. –