¿Cómo eliminar valores duplicados basados ​​​​en solo una columna de la tabla en SQL?

En SQL, algunas filas contienen entradas duplicadas en una columna. Para eliminar tales filas, necesitamos usar la palabra clave DELETE junto con la autounión de la tabla consigo misma. Lo mismo se ilustra a continuación. Para este artículo, utilizaremos Microsoft SQL Server como nuestra base de datos.

Paso 1: crear una base de datos. Para esto, use el siguiente comando para crear una base de datos llamada GeeksForGeeks.

Consulta:

CREATE DATABASE GeeksForGeeks

Producción:

Paso 2: use la base de datos GeeksForGeeks. Para esto, use el siguiente comando.

Consulta:

USE GeeksForGeeks

Producción:

Paso 3: Crea una tabla BONUSES dentro de la base de datos GeeksForGeeks. Esta tabla tiene 3 columnas, a saber, EMPLOYEE_ID, EMPLOYEE_NAME y EMPLOYEE_BONUS que contienen la identificación del empleado, el nombre del empleado y su bonificación.

Consulta:

CREATE TABLE BONUSES(
EMPLOYEE_ID INT,
EMPLOYEE_NAME VARCHAR(10),
EMPLOYEE_BONUS INT);

Producción:

Paso 4: Describa la estructura de la tabla BONOS.

Consulta:

EXEC SP_COLUMNS BONUSES;

Producción:

Paso 5: Inserte 10 filas en la tabla BONOS.

Consulta:

INSERT INTO BONUSES VALUES(1,'RAJ',10000);
INSERT INTO BONUSES VALUES(2,'RAJIV',10000);
INSERT INTO BONUSES VALUES(3,'RAJ',20000);
INSERT INTO BONUSES VALUES(4,'SAMEER',20000);
INSERT INTO BONUSES VALUES(5,'PANKAJ',30000);
INSERT INTO BONUSES VALUES(6,'HARRY',30000);
INSERT INTO BONUSES VALUES(7,'VAUN',40000);
INSERT INTO BONUSES VALUES(8,'SANGWOO',40000);
INSERT INTO BONUSES VALUES(9,'SAM',50000);
INSERT INTO BONUSES VALUES(10,'TIM',50000);

Producción:

Paso 6: Muestre todas las filas de la tabla BONOS.

Consulta:

SELECT * FROM BONUSES;

Producción:

Paso 7: elimine las filas de la tabla BONOS que tienen entradas duplicadas en la columna EMPLOYEE_BONUS . Para lograr esto, usamos la función ELIMINAR uniéndose a sí mismo (use la función JOIN en 2 alias de la tabla, es decir, B1 y B2 ) la tabla consigo misma y comparando las entradas de la columna EMPLOYEE_BONUS para diferentes entradas de la columna EMPLOYEE_ID porque la ID es única para cada empleado.

Sintaxis:

DELETE T1 FROM TABLE_NAME T1
JOIN TABLE_NAME T2
ON T1.COLUMN_NAME1 = T2.COLUMN_NAME1
AND T2.COLUMN_NAME2 < T1.COLUMN_NAME2;

Consulta:

DELETE B1 FROM BONUSES B1
JOIN BONUSES B2
ON B1.EMPLOYEE_BONUS = B2.EMPLOYEE_BONUS
AND B2.EMPLOYEE_ID < B1.EMPLOYEE_ID;

Producción:

Paso 8: Muestre todas las filas de la tabla BONUS actualizada.

Consulta:

SELECT * FROM BONUSES;

Nota : ninguna fila tiene entradas duplicadas en la columna EMPLOYEE_BONUS .

Producción:

Paso 9: elimine las filas de la tabla BONOS que tienen entradas duplicadas en la columna EMPLOYEE_NAME .

Consulta:

DELETE B1 FROM BONUSES B1
JOIN BONUSES B2
ON B1.EMPLOYEE_NAME = B2.EMPLOYEE_NAME
AND B2.EMPLOYEE_ID < B1.EMPLOYEE_ID;

Producción:

Paso 10: Muestre todas las filas de la tabla BONUS actualizada.

Consulta:

SELECT * FROM BONUSES;

Nota: ninguna fila tiene entradas duplicadas en la columna EMPLOYEE_NAME .

Producción:

Publicación traducida automáticamente

Artículo escrito por abhisri459 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *