¿Cómo encontrar registros duplicados que cumplan con ciertas condiciones en SQL?

En este artículo, entenderemos cómo encontrar registros duplicados que cumplan ciertas condiciones en SQL. Usando las cláusulas GROUP BY y HAVING podemos mostrar los duplicados en los datos de la tabla. La declaración GROUP BY en SQL se usa para organizar datos idénticos en grupos con la ayuda de algunas funciones. es decir, si una columna en particular tiene los mismos valores en diferentes filas, organizará estas filas en un grupo.

Con fines de demostración, crearemos una tabla de participantes en una base de datos llamada » GeeksForGeeksDatabase «.

Paso 1: Creación de la base de datos

Utilice la siguiente instrucción SQL para crear una base de datos llamada GeeksForGeeksDatabase .

Consulta:

CREATE DATABASE GeeksForGeeksDatabase;

Paso 2: Uso de la base de datos

Utilice la siguiente instrucción SQL para cambiar el contexto de la base de datos a GeeksForGeeksDatabase .

Consulta:

USE GeeksForGeeksDatabase;

Paso 3: Definición de la tabla

Consulta:

CREATE TABLE Geeks(
GeekID INTEGER PRIMARY KEY,
GeekName VARCHAR(255) NOT NULL,
GeekRank INTEGER NOT NULL,
GeekSchool VARCHAR(255) NOT NULL
);

Consulta:

INSERT INTO Geeks VALUES (101, 'Nix',2 ,'Code Valley School');
INSERT INTO Geeks VALUES (102, 'Rutz',4 ,'Blue Chip School');
INSERT INTO Geeks VALUES (103, 'Shrey',1 ,'GCOEA School');
INSERT INTO Geeks VALUES (104, 'Ankx',3 ,'Round Robin Play School');
INSERT INTO Geeks VALUES (105, 'Ridz',7 ,'Dream School');
INSERT INTO Geeks VALUES (106, 'Mayo',6 ,'Silver Shining School');
INSERT INTO Geeks VALUES (107, 'Bugs',5 ,'Twinkle Star Convent');

Paso 4: para ver el contenido de la tabla creada, usamos la siguiente consulta:

Consulta:

SELECT * FROM Geeks;

Producción:

La tabla anterior de los geeks tiene registros normales sin valores duplicados. 

Paso 5: imaginemos una situación en la que se produjo un error en la tabla del geek debido a algunas razones por las que se insertaron pocos duplicados. Idealmente, cada fila debería tener un valor único para GeekRank, pero ahora en nuestra tabla se insertan geeks duplicados con rangos duplicados.

Consulta:

INSERT INTO Geeks VALUES (108, 'Maria', 5 ,'Code Valley School');

En la tabla recién actualizada anterior, pudimos ver que hay 2 registros con el mismo rango geek de 5 . GeekID 107 y GeekID 108 tienen el mismo rango de 5. Ahora necesitamos encontrar esta duplicación usando SQL Query.

Usando la cláusula GROUP BY y HAVING:

Una forma de encontrar registros duplicados de la tabla es la instrucción GROUP BY. La declaración GROUP BY en SQL se usa para organizar datos idénticos en grupos con la ayuda de algunas funciones. es decir, si una columna en particular tiene los mismos valores en diferentes filas, organizará estas filas en un grupo.

Consulta para encontrar los duplicados:

Consulta para encontrar los registros duplicados que tienen el mismo GeekRank:

Consulta:

SELECT GeekRank, COUNT(GeekID) AS DuplicateRanks
FROM Geeks
GROUP BY GeekRank
HAVING COUNT(GeekRank)>1;

Usando las cláusulas GROUP BY y HAVING podemos mostrar los duplicados en los datos de la tabla. Por ‘ GRUPO POR GeekRank ‘ significa colocar todas las filas con el mismo valor de solo esa columna en particular, es decir, GeekRank en un grupo. Usamos ‘ HAVING COUNT(GeekRank)>1′ para seleccionar una columna que tenga más de 1 rango de geeks en la salida. La función COUNT() de SQL se usa aquí para contar las filas duplicadas. Aquí estamos nombrando nuestra nueva columna como ‘ DuplicateRanks ‘ que cuenta los rangos duplicados.

Producción:

Explicación:

Como podemos ver, las filas con GeekRank duplicado se agrupan bajo el mismo GeekRank y su COUNT correspondiente es el conteo del GeekRank de filas duplicadas. GeekID 107 y GeekID 108 tienen el mismo rango 5. Por lo tanto, en el resultado anterior, podríamos ver GeekRank como 5 (porque este quinto rango se encuentra duplicado) y dado que dos GeekID tenían el mismo GeekRank 5, DuplicateRank es decir, el recuento de registros duplicados es 2. Una vez que haya encontrado las filas duplicadas, puede optar por eliminar esas filas duplicadas mediante la instrucción DELETE.

 

Publicación traducida automáticamente

Artículo escrito por chaudharinikita9999 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 *