Skip site navigation (1) Skip section navigation (2)

Re: borrar registros repetidos

From: "Javier Aquino H(dot)" <JAquino(at)LexusEditores(dot)com>
To: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>, "Mario Gonzalez \( mario__ \)" <gonzalemario(at)gmail(dot)com>, Postgres Español <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: borrar registros repetidos
Date: 2006-09-23 00:20:56
Message-ID: 04ab01c6dea6$237cd9c0$0a010a0a@javier (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Mmmmmmmmmmmmmmmmmmm

La verdad discrepo contigo con esa sentencia SQL por varios motivos pero lo
primordial es:

 - El alias p2 no está definido en ningun lugar de la sentencia ( solo para
comenzar )
 - Si el select interno devuelve el nombre 'Juan Perez' entonces la
sentencia delete externa borraría a todos los 'Juan Perez' y lo que se
quiere es que borre todos menos 1.

Slds,

Javier.

----- Original Message ----- 
From: "Sebastián Villalba" <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
To: "Mario Gonzalez ( mario__ )" <gonzalemario(at)gmail(dot)com>; "Javier Aquino
H." <JAquino(at)lexuseditores(dot)com>; "Postgres Español"
<pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Friday, September 22, 2006 6:55 PM
Subject: Re: [pgsql-es-ayuda] borrar registros repetidos


> Hola...
>
> On Fri, 22 Sep 2006 17:00:42 -0400, Mario Gonzalez ( mario__ ) wrote
>> On 22/09/06, Javier Aquino H. <JAquino(at)lexuseditores(dot)com> wrote:
>> > Solo una consulta ..............
>> >
>> > CREATE TEMP TABLE personas_tmp AS SELECT distinct on (nombre)
>> >    id,nombre from personas;
>> >
>> > Digamos que hay 10 registros con el campo nombre "Juan Perez" ....
>> > ¿Cual de
>> > los 10 id devuelve ?
>> >
>> > El primero que encuentre ? ... el menor?, el mayor ?
>> >
>>
>>   no hay  forma de saber cual es el menor o el mayor a menos que se
>> especifique explicitamente un ORDER BY.
>
> Evidentemente agarré tarde el hilo, pero ví que nadie dió una solución muy
> fácil, en SQL puro y sin necesidad de tablas temporales. Sería algo como:
>
> DELETE FROM persona WHERE nombre IN (SELECT p1.nombre FROM persona p1
> WHERE
> persona.id > p2.id);
>
> Eso borrará todas las igualdades dejando solamente el primero que se
> encontró.
> Para dejar el último basta con cambiar el sentido de ">" dentro de la
> subconsulta. Saludos...
>
> -
> -------------------------------------------
> Sebastián Villalba
> sebastian(at)fcm(dot)unc(dot)edu(dot)ar
> -------------------------------------------
>
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
>    (envíe "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
>



In response to

Responses

pgsql-es-ayuda by date

Next:From: Sebastián VillalbaDate: 2006-09-23 00:35:46
Subject: Re: borrar registros repetidos
Previous:From: Sebastián VillalbaDate: 2006-09-23 00:16:27
Subject: Re: borrar registros repetidos

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group