2014-10-27 11:28 GMT-02:00 Eloi Ribeiro <[email protected]>:
> Vou tentar explicar melhor.
>
> Esta tabela indica-me que:
> 5=12842
> 5=62409
> 5=62410
> 12842=5
> 12842=62409
> 12842=62410
> 62409=5
> 62409=12842
> 62409=62410
> 62410=5
> 62410=12842
> 62410=62409
>
> Então se 5=12842, 5=62409 e 5=62410, já sei que 12842=62409, 12842=62410 e
> 62410=62409. Estes três últimos resultados estão a repetir a mesma
> informação.
Agora está mais claro. Vamos lá, supondo a tabela "dados(a int, b int)", se
não me enganei em algo, a seguinte consulta trará o resultado esperado:
WITH elements(a,b) AS (
SELECT DISTINCT least(a, b), greatest(a, b)
FROM dados
)
SELECT e1.* FROM elements e1
WHERE NOT EXISTS(SELECT 1 FROM elements e2 WHERE e1.a = e2.b);
a | b
---+-------
5 | 12842
5 | 62410
5 | 62409
(3 rows)
Verifique em seus dados se atingem o resultado esperado.
Atenciosamente,
--
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral