eliminación de duplicados quédate con UNO.

20/04/2008 - 00:13 por David | Informe spam
Muy buenas,

Microsoft SQL Server 2000

Teniendo una tabla tan simple como

direcciones

[id] autonumérico, calve principal
[email] cadena que almacena la dirección electrónica

En la tabla se almacenan correos electrónicos DUPLICADOS (triplicados,
cuadrúplicados, ..., vete tú a saber, creo que existen mas de 20.000
e-mails), el hecho es que hay datos REPETIDOS.

¿Cómo podría montar una consulta de eliminación que eliminara los registros
"redundantes" y se quedara con uno?
me explico:

1 pepe@hotmail.com
2 miguel@hotmail.com
3 pepe@hotmail,com
4 pepe@hotmail.com
5 david@hotmail.com
6 miguel@hotmail.com

Despúes de la eliminación de "duplicados quedate con uno", la tabla quedaría
con los siguientes datos
(es indiferente con cual se quede de los duplicados)

1 pepe@hotamil.com
6 miguel@hotmailcom
5 david@hotamil.com

INSISTO es indiferente el registro duplicado que mantiene (lo comento porque
he puesto la clave principal y para no llevar a confusiones)

Reconozco que no tengo ni "p.i." de cómo meterle mano a la consulta.

Gracias de antemano.

Nota: me da un poco de "cosa" el ni tan siquiera plantear una posible
solución, pero n.p.i.

Preguntas similare

Leer las respuestas

#6 David
20/04/2008 - 02:12 | Informe spam
Pues, mil gracias

(1)

Eso quiere decir que no sabes como está siendo utilizado
el [id]. Por ejemplo como referencia desde otras tablas.
Y por tanto no puedes estar segugo de cuales puedes borrar.

SIN PROBLEMAS, está controlado

(2)
Podrías borrar todos aquellos registors con un [id]
que no estén en en el resultado de este select

select min([id]) from direcciones group by email

MAGNÍFICO, jamás de los jamases se me hubiera pasado por la cabeza, tan sólo
REITERAR las gracias.

Nota: aquí en España son más de las dos de la madrugada y ya es DOMINGO,
cada vez estoy más convencido de que me debería haber dedicado a la
fonatnería (normalmente se desatascan lavavos en horarios normales y días
laborables)

En fin, gracias !!!


"Carlos M. Calvelo" escribió en el mensaje
news:
Hola David,

On 20 apr, 01:07, "David" wrote:
Otras mil gracias por contestar.

El caso es que la tabla está así (la base de datos me la encontré así,
supongo que el padre de la criatura cerró la puerta antes de salir
corriendo)



Eso quiere decir que no sabes como está siendo utilizado
el [id]. Por ejemplo como referencia desde otras tablas.
Y por tanto no puedes estar segugo de cuales puedes borrar.


Retomando el tema, ¿es posible realizar un "DELETE de duplicados quédate
con
uno" :-)?



Si.
Podrías borrar todos aquellos registors con un [id]
que no estén en en el resultado de este select

select min([id]) from direcciones group by email

Saludos,
Carlos
Respuesta Responder a este mensaje
#7 Carlos M. Calvelo
20/04/2008 - 02:12 | Informe spam
On 20 apr, 01:50, "Carlos M. Calvelo" wrote:
Y por tanto no puedes estar segugo de cuales puedes borrar.



Solo *asegugar* que yo no hablo así eh!
:)

Carlos
Respuesta Responder a este mensaje
#8 Carlos M. Calvelo
20/04/2008 - 02:21 | Informe spam
On 20 apr, 02:12, "David" wrote:

Nota: aquí en España son más de las dos de la madrugada y ya es DOMINGO,
cada vez estoy más convencido de que me debería haber dedicado a la
fonatnería (normalmente se desatascan lavavos en horarios normales y días
laborables)




Nota: aquí en Holanda es exactamente la misma hora y
te *asegugo* que aquí tenemos tipos de *fonatnería* que
se desatascan fuera de horarios normales.

:)

Saludos,
Carlos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida