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

Re: eliminacion de duplicados

From: juan <juanramirez(at)cajazacate(dot)com(dot)sv>
To: FRANK RADA <frankrada(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: eliminacion de duplicados
Date: 2009-07-31 15:12:42
Message-ID: 4A7309EA.3000009@cajazacate.com.sv (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
FRANK RADA escribió:
> asi filttre los repetidos
> 
> SELECT susc, count(susc)
> FROM X
> GROUP BY susc
> HAVING count(susc) >1
> ORDER BY susc;
> 
> ahora la pregunta.
> 
> 1.como calsulo cuantas tuplas estan repetidas.
> 2.como elimino las repetidas teniendo en cuenta que debo guardar una
> tupla de estas.

al script que tu has creado le llamare script "picoso"


1. Como calculo cuantas tuplas estan repetidas?

si te referis a cuantas tuplas equivalen a tu script "picoso" podrias 
hacer lo siguiente:

    select * from X as a
    where exists(
       select susc, count(susc)
       from X
       where a.susc=susc
       group by susc
       having count(susc)>1)
    order by susc


Lo anterior te dara como resultado todas las tuplas que aparecen más de 
una vez, osea las repetidas, en otras palabras todas las tuplas que tu 
script picoso extrae, pero a detalle....



2. Como elimino las repetidas teniendo en cuenta que debo guardar una 
tupla de estas?....

muy buena pregunta, yo ya he tenido situaciones como la presentas, en 
aquellos entonces la única solución para mí ha sido la siguiente:

crear una tabla temporal con sin filas repetidas....

     select distinct * into X_tmp from X

luego eliminar todo de la tabla con tuplas repetidas y al final hacer un 
llenado de la tabla temporal

    delete from X;
    insert into X select * from X_tmp;



-- 
Cordialmente,
Juan Ramírez
El Salvador

In response to

Responses

pgsql-es-ayuda by date

Next:From: Fernando HeviaDate: 2009-07-31 15:28:13
Subject: RE: Bajo rendimiento en postgresql cuando se lanza un delete
Previous:From: FRANK RADADate: 2009-07-31 14:56:01
Subject: eliminacion de duplicados

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