SQL Server Eliminar filas duplicadas

SQL Server Eliminar filas duplicadas

Los valores duplicados en una base de datos pueden ser un problema al realizar operaciones altamente precisas. Pueden conducir a que se procese un valor único varias veces, contando el resultado. Los registros duplicados también ocupan más espacio del necesario, lo que lleva a un rendimiento lento.

En esta guía, comprenderá cómo puede encontrar y eliminar filas duplicadas en una base de datos de SQL Server.

Los basicos

Antes de continuar, ¿qué es una fila duplicada?? Podemos clasificar una fila como un duplicado si contiene un nombre y valor similar a otra fila en la tabla.

Para ilustrar cómo encontrar y eliminar filas duplicadas en una base de datos, comencemos creando datos de muestra como se muestra en las consultas a continuación:

Usar duplicadob;
Crear usuarios de tabla (
Id int identidad (1,1) no nulo,
Nombre de usuario Varchar (20),
Envíe un correo electrónico a Varchar (55),
Teléfono Bigint,
estados varchar (20)
);
Insertar en los usuarios (nombre de usuario, correo electrónico, teléfono, estados)
Valores ('cero', '[email protected] ', 6819693895,' Nueva York '),
('GR33N', '[email protected] ', 9247563872,' Colorado '),
('Shell', [email protected] ', 702465588,' Texas '),
('habitar', '[email protected] ', 1452745985,' Nuevo México '),
('GR33N', '[email protected] ', 9247563872,' Colorado '),
('cero', '[email protected] ', 6819693895,' Nueva York ');

En la consulta de ejemplo anterior, creamos una tabla que contiene información del usuario. En el siguiente bloque de cláusula, usamos el inserto en la instrucción para agregar valores duplicados a la tabla de los usuarios.

Encontrar filas duplicadas

Una vez que tengamos los datos de muestra que necesitamos, visite los valores duplicados en la tabla de los usuarios. Podemos hacer esto utilizando la función de recuento como:

Seleccione Nombre de usuario, correo electrónico, teléfono, estados, cuenta (*) como count_value desde el grupo de usuarios por nombre de usuario, correo electrónico, teléfono, estados que tengan cuenta (*)> 1;

El fragmento de código anterior debe devolver las filas duplicadas en la base de datos y cuántas veces aparecen en la mesa.

Una salida de ejemplo es como se muestra:

A continuación, eliminamos las filas duplicadas.

Eliminar filas duplicadas

El siguiente paso es eliminar filas duplicadas. Podemos hacer esto usando la consulta Eliminar como se muestra en el fragmento de ejemplo de ejemplo:

Eliminar de los usuarios donde no está en (seleccione Max (ID) del grupo de usuarios por nombre de usuario, correo electrónico, teléfono, estados);

La consulta debe afectar las filas duplicadas y mantener las filas únicas en la mesa.

Podemos ver la tabla como:

Seleccionar * de los usuarios;

El valor resultante es como se muestra:

Eliminar filas duplicadas (unirse)

También puede usar una declaración de unión para eliminar filas duplicadas de una tabla. Un código de consulta de muestra de ejemplo es el que se muestra a continuación:

Eliminar a de los usuarios una unión interna
(Seleccione ID, Rank () Over (Partition by Username Order por ID) como Rank_ de los usuarios)
B en un.ID = B.id donde b.rank_> 1;

Tenga en cuenta que el uso de la unión interna para eliminar los duplicados puede llevar más tiempo que otros en una extensa base de datos.

Eliminar la fila duplicada (row_number ())

La función row_number () asigna un número secuencial a las filas en una tabla. Podemos usar esta funcionalidad para eliminar los duplicados de una tabla.

Considere la consulta de ejemplo a continuación:

Usar duplicadobb
Eliminar t
DE
(
SELECCIONAR *
, duplicate_rank = row_number () over (
Partición por identificación
Orden por (Seleccione NULL)
)
De los usuarios
) Como t
Donde duplicate_rank> 1

La consulta anterior debe usar los valores devueltos de la función Row_Number () para eliminar los duplicados. Una fila duplicada producirá un valor superior a 1 de la función row_number ().

Conclusión

Mantener sus bases de datos limpias eliminando las filas duplicadas de las tablas es bueno. Esto ayuda a mejorar el rendimiento y el espacio de almacenamiento. Usando los métodos en este tutorial, limpiará sus bases de datos de forma segura.