From: | Juan Martínez <jeugenio(at)umcervantes(dot)cl> |
---|---|
To: | Mario Gonzalez <gonzalemario(at)gmail(dot)com> |
Cc: | Postgres Español <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Filtro de Consultas |
Date: | 2006-06-23 19:21:56 |
Message-ID: | 1151090516.4022.12.camel@localhost.localdomain |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El vie, 23-06-2006 a las 18:59 -0400, Mario Gonzalez escribió:
> Holas, creo que llevo mucho tiempo resolviendo tratando de resolver
> esto : ) tengo un pequeño gran problema que lo puedo reproducir a una
> minima escala asi:
>
> test=> CREATE TABLE uno(a int, b int);
> CREATE TABLE
> test=> INSERT INTO uno VALUES (1, 2);
> INSERT 0 1
> test=> INSERT INTO uno VALUES (3, 4);
> INSERT 0 1
> test=> INSERT INTO uno VALUES (3, 5);
> INSERT 0 1
> test=> INSERT INTO uno VALUES (5, 6);
> INSERT 0 1
> test=> SELECT * from uno ;
> a | b
> ---+---
> 1 | 2
> 3 | 4
> 3 | 5
> 5 | 6
> 7 | 8
> 7 | 9
> 7 | 10
> (7 filas)
>
> con eso, como puedo hacer para devolver los que solo estan una vez
> en la tabla? O sea asi
> a | b
> ---+---
> 1 | 2
> 5 | 6
A mi me funciona!
No se si es lo mas optimo, pero lo pongo por si te sirve
Ojo que solo evalua que un valor de 'a' sea unico (segun el ejemplo que
pusiste). Si 'a' y 'b' como tupla tienen que ser unicos, la cosa se
complica un poco, pero creo que pasa por convertirlos en un solo string.
SELECT a_.a,uno.b
FROM (SELECT a,count(a) AS "cont_a"
FROM uno
GROUP BY a) AS a_
INNER JOIN uno ON uno.a=a_.a
WHERE cont_a=1;
--
Juan Martínez
Depto. Inf.
UMC
From | Date | Subject | |
---|---|---|---|
Next Message | deepthroat | 2006-06-23 19:52:53 | capturar exception pruducto de constraint |
Previous Message | Yaremi Paz | 2006-06-23 19:15:49 | RE: Simple consulta SELECT |