¿Cómo encontrar valores duplicados en varias columnas en SQL?

En SQL, a veces necesitamos encontrar entradas duplicadas en varias columnas de una tabla en una sola consulta. Usaremos las palabras clave GROUP BY y COUNT para lograr esto. Para esto, usamos un tipo específico de consulta que se muestra en la siguiente demostración. Para este artículo, usaremos Microsoft SQL Server como nuestra base de datos y seleccionaremos la palabra clave.

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: Cree una tabla de PUBLICACIONES dentro de la base de datos GeeksForGeeks. Esta tabla tiene 4 columnas, a saber, POSTING_ID, OFFICER_NAME, TEAM_SIZE y POSTING_LOCATION que contienen la identificación, el nombre del oficial, el tamaño del equipo y las ubicaciones de los puestos de Servicios Extranjeros en diferentes países.

Consulta:

CREATE TABLE POSTINGS(
POSTING_ID INT,
OFFICER_NAME VARCHAR(10),
TEAM_SIZE INT,
POSTING_LOCATION VARCHAR(10));

Producción:

Paso 4: Describa la estructura de la tabla POSTINGS.

Consulta:

EXEC SP_COLUMNS POSTINGS;

Producción:

Paso 5: Inserte 5 filas en la tabla POSTINGS.

Consulta:

INSERT INTO POSTINGS VALUES(1,'RYAN',10,'GERMANY');
INSERT INTO POSTINGS VALUES(2,'JACK',6,'ROMANIA');
INSERT INTO POSTINGS VALUES(3,'JANE',4,'HAWAII');
INSERT INTO POSTINGS VALUES(4,'JIM',10,'GERMANY');
INSERT INTO POSTINGS VALUES(5,'TIM',10,'GERMANY');
INSERT INTO POSTINGS VALUES(6,'RYAN',11,'GERMANY');
INSERT INTO POSTINGS VALUES(7,'RYAN',10,'GERMANY');
INSERT INTO POSTINGS VALUES(8,'RYAN',10,'GERMANY');
INSERT INTO POSTINGS VALUES(9,'JACK',6,'CUBA');
INSERT INTO POSTINGS VALUES(10,'JACK',6,'HAITI');

Producción:

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

Consulta:

SELECT * FROM POSTINGS;

Producción:

Paso 7: busque duplicados en 3 (múltiples) columnas, es decir, en OFFICER_NAME , TEAM_SIZE y POSTING_LOCATION en la tabla POSTINGS . Para lograrlo, necesitamos agrupar los registros por estas tres columnas y mostrar aquellos que tienen un recuento mayor que 1, es decir, tienen valores coincidentes. Utilice las palabras clave GROUP BY y COUNT .

Sintaxis:

SELECT COLUMN_NAME1, COLUMN_NAME2, 
COLUMN_NAME3, COUNT(*) AS ALIAS
FROM TABLE_NAME
GROUP BY COLUMN_NAME1, COLUMN_NAME2,
COLUMN_NAME3 HAVING COUNT(*)>1;

Consulta:

SELECT OFFICER_NAME, TEAM_SIZE,
POSTING_LOCATION, COUNT(*) AS QTY
FROM POSTINGS
GROUP BY OFFICER_NAME, TEAM_SIZE,
POSTING_LOCATION HAVING COUNT(*)>1;

Producción:

Paso 8: busque duplicados en 2 (múltiples) columnas, es decir, en TEAM_SIZE y POSTING_LOCATION en la tabla POSTINGS .

Consulta:

SELECT TEAM_SIZE, POSTING_LOCATION, 
COUNT(*) AS QTY
FROM POSTINGS
GROUP BY TEAM_SIZE, POSTING_LOCATION
 HAVING COUNT(*)>1;

Producción:

Paso 9: busque duplicados en 2 (múltiples) columnas, es decir, en OFFICER_NAME y TEAM_SIZE en la tabla POSTINGS .

Consulta:

SELECT OFFICER_NAME, TEAM_SIZE, 
COUNT(*) AS QTY
FROM POSTINGS
GROUP BY OFFICER_NAME, 
TEAM_SIZE HAVING COUNT(*)>1;

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 *