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
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 |