2013/2/4 Pedro B. Alves <[email protected]>

> Pessoal, não sei se tem alguna função para solucuinar este problema.
>
>
> SELECT campo1, campo2, campo3, campo4 FROM tabela
>
> gostaria de usar um distinct só dos 3 primeiros campos.
>
>
> SELECT DISTINCT(campo1, campo2, campo3), campo4 FROM tabela
>
>
>
Quase como você escreveu:

SELECT DISTINCT ON(campo1, campo2, campo3) campo1, campo2, campo3, campo4
FROM tabela;

Veja que isso implica num resultado não determinístico, ao menos para o
campo4. Em geral, adiciona-se o mesmo no final do ORDER BY para "escolher"
qual registro mostrar, nesse caso você "deve" informar os campos usados no
DISTINCT ON no *início* do ORDER BY:

SELECT DISTINCT ON(campo1, campo2, campo3) campo1, campo2, campo3, campo4
FROM tabela
ORDER BY campo1, campo2, campo3, campo4 ...;

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

Responder a