En este grupo En todos

Foro de SQL Server



Consulta de registros duplicados en una tabla en sql

Escrito por Pablo Miguel
el 23/08/2006

Como puedo hacer una consulta (select) que me indique los registros duplicados en una misma tabla en sql. Tengo un problema con la consulta y traté de diferentes formay y nada.

De verdad les agradecería esa ayuda

Monica Rivera
Washington, Estados ...
Escrito por Monica Rivera
el 23/08/2006

Select campo1,campo2,campo3,campo4, count(*) as 'Numero_de_Ocurrencias' from tabla
group by campo1,campo2,campo3,campo4
having count(*)>1

Saludos,

Monica

Escrito por Oscar
el 04/10/2006
Que tal mi nombre es oscar salguero, yo tambien tengo ese problema pero estoy utilizando foxpro y sql, Como puedo hacer para crear la consulta pero desde fox? Gracias
Escrito por Titan
el 22/07/2009
"Que tal mi nombre es oscar salguero, yo tambien tengo ese problema pero estoy utilizando foxpro y sql, Como puedo hacer para crear la consulta pero desde fox? Gracias "
por oscar (Octubre 2006)


no lo se

Isaias Yam
Yucatán, México
Escrito por Isaias Yam
el 09/09/2010

Busca todos los registros repetidos de una tabla y lo envia a una nueva tabla.

Espero te sirva.

SELECT * ;
FROM Tablamen T1;
WHERE EXISTS ;
(SELECT * ;
FROM Tablamen T2 ;
WHERE T1. Llaveunica = T2. Llaveunica ;
GROUP BY T2. Llaveunica ;
HAVING COUNT(*) > 1) INTO TABLE c:\rep. Dbf

Isaias Yam
Yucatán, México
Escrito por Isaias Yam
el 09/09/2010

Este ejemplo busca todos los registros repetidos mediante un campo llamado llaveunica y el resultado lo envia a una tabla diferente. Si omitimos la sentencia into table, se desplegrara en pantalla.

SELECT * ;
FROM Tablamen T1;
WHERE EXISTS ;
(SELECT * ;
FROM Tablamen T2 ;
WHERE T1. Llaveunica = T2. Llaveunica ;
GROUP BY T2. Llaveunica ;
HAVING COUNT(*) > 1) INTO TABLE c:\rep. Dbf

Carlos Francisco
Ing. de sistemas una
Escrito por Carlos Francisco
el 14/09/2010

Antes de proceder a dar mi opinión, voy a pedir disculpas por participar de forma tardía, pero el tema es de interés académico, y con un enfoque a las mejoras en el análisis.

En primera instancia, las respuestas emitidas a la pregunta formulada por Pablo Miguel el 23/08/2006 no son congruentes, y a sí mismo la pregunta contraría las formas de análisis de base de datos, por lo que la respuesta correcta sería “no existe una vista sql que retorne registros duplicados en una misma tabla coincidentes con el mismo predicado”. Para visualizar la respuesta de una forma más común, toda tabla debe contener un índice de diferenciación, evitando la duplicidad de datos y por ende el eco de la información. Como ejemplo típico de análisis esta la normalización, cuya intención es evaluar el dato en su concepto puro de pertenencia a una información concreta.

Lo que parece desentonar con el planteamiento anterior, es que las respuestas si dejan satisfecha la condición de repetidos (diferente a duplicado), pero como es de observar, cada una de las respuestas se enfoca en crear un grupo (subconjunto) y agregar un campo (deja de ser la misma tabla) para proponer una condición, la cual no es de duplicidad del registro, por el contrario, representa las veces de aparición de la condición.

Como es de ver, las respuestas podrían satisfacer la pregunta, si y solo si los campos a ser agrupados son todos los de la tabla origen (el conjunto es un subconjunto sobre si mismo), para una condición de conteo mayor de uno. Como es de observar el sql no resuelve problemas de análisis defectuoso, por el contrario permite una solución a cualquier pregunta, aunque sea inconsistente la información. Ventajas y desventajas del lenguaje?.

Suerte y saludos