From: | "Guillermo O(dot) Burastero" <linux(dot)gb(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Fwd: RV: Trayendo repetidos |
Date: | 2006-03-02 20:09:21 |
Message-ID: | 8deaabc60603021209q5113b7bdg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
---------- Forwarded message ----------
From: Guillermo O. Burastero <linux(dot)gb(at)gmail(dot)com>
Date: 02-mar-2006 16:53
Subject: Re: [pgsql-es-ayuda] RV: Trayendo repetidos
To: Miguel Angel <mvillagomez(at)sayab(dot)com(dot)mx>
El día 2/03/06, Miguel Angel <mvillagomez(at)sayab(dot)com(dot)mx> escribió:
>
>
>
> Habrá algún comando dentro de postresql que me devuelva solo los elementos
> repetidos dentro de una tabla, o es necesario como pienso crear una función
> que los busque y necesariamente usar punteros?
>
Una simple consulta SQL.
Por ejemplo, sea la tabla prueba siguiente
select * from prueba order by nombre;
id | nombre
----+------------
4 | Belgrano
1 | O'Higgins
2 | O'Higgins
6 | San Martín
3 | San Martín
10 | San Martín
5 | Sarmiento
(7 filas)
La consulta siguiente te da la tuplas repetidas (con el mismo nombre)
select * from prueba where nombre in (select nombre from prueba group by
nombre having count(*) > 1 ) order by nombre ;
id | nombre
----+------------
1 | O'Higgins
2 | O'Higgins
6 | San Martín
3 | San Martín
10 | San Martín
(5 filas)
Si querés saber cuantas repeticiones hay de cada uno basta con
select nombre, count(*) from prueba group by nombre having count(*) > 1
order by count(*) ;
nombre | count
------------+-------
O'Higgins | 2
San Martín | 3
Los ordenamientos en estos casos son por estética.
Saludos.
--
Guillermo O. Burastero
--
Guillermo O. Burastero
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2006-03-02 20:19:50 | Re: Trayendo repetidos |
Previous Message | Juan Martínez | 2006-03-02 19:46:17 | Re: Error raro con copy |