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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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

Browse pgsql-es-ayuda by date

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