Dos estilos para eliminar registros duplicados en una tabla SQL Server – Heliberto Arias Blog
Saturday, August 18, 2018
SQL

Dos estilos para eliminar registros duplicados en una tabla SQL Server

>helibertoarias helibertoarias
mayo 30, 2018

Cuando estamos trabajando con bases de datos es muy común encontrar datos duplicados y verse en la necesidad de depurar los datos bajo ciertos criterios.

En el ejemplo que crearemos tendremos una tabla, sobre SQL Server, llamada post_history la cual tiene un identificador, un titulo y una fecha de creación del registro.

Al ejecutar el anterior script tendríamos la siguiente salida.

Datos iniciales

Datos iniciales

El objetivo será eliminar los registros duplicados y solo mantener el primero ingresado de acuerdo al campo create_date y el campo con el que identificaremos si el registro es duplicado o no será title. En la siguiente instrucción procedemos a asignar una posición a cada registro dentro de cada grupo title  teniendo como criterio de ordenamiento el campo created_date. En este caso los datos seran ordenados ascendentemente ya que se desea eliminar todos menos el primer registro cronológicamente ingresado.

 

Asignado posiciones a los datos

Asignado posiciones a los datos

 

Una vez asignada una posición lo próximo es borrar todos los registro cuya posición sea mayor a 1.

 

Con la instrucción anterior la tabla de datos quedaría de la siguiente manera.

Tabla depurada

Tabla depurada

 

Otra forma es utilizar la instrucción CROSS APPLY. En este variante creas un subquery con los titulos y para cada uno consultas y obtienes a través del CROSS APPLY el primer registro coincidente y por ello de utiliza un borrado con la instrucción NOT IN.

 

¿Tiene otros estilos para borrado de estos datos?, por favor coméntanos.

Fotografía: Guillaume Bolduc

(Visitado 76 veces, 1 visitas hoy)
Heliberto Arias
Senior .NET Developer
Mi nombre es Heliberto Arias y vivo en Barranquilla, Colombia. Soy desarrollador de software. He estado en el desarrollo de software desde el 2007. Cree este blog en 2013 para compartir lo que voy aprendiendo cada año y en el escribo de tecnologías Microsoft principalmente en C# (y aunque he usado VB declaro que lo detesto) y SQL Server desarrollado aplicaciones y servicios web entre otros. Me gustaría mucho si te suscribes a mis redes en Youtube, Google+, Twitter, e Instagram.

Comments

No comments found!

Leave a Comment

Your email address will not be published.

diecinueve + 15 =

Login
Remember me
Lost your Password?
Password Reset
Login