Eloi,
Boa tarde.
Veja se o exemplo abaixo pode ajudar.

create temp table teste(chave int, letra char(1), valor int);

insert into teste(chave, letra, valor)
        values  (45101,'A',4), 
                (45101,'S',23),
                (45102,'A',4),
                (45103,'S',23),
                (45104,'A',4),
                (45105,'S',23),
                (45105,'W',3),
                (45106,'S',23),
                (45107,'A',4),
                (45108,'W',3),
                (45108,'A',4);

select    x.chave,
        x.letra,
        x.valor
    from 
                (
                        select   chave,
                                letra,
                                valor,
                                row_number() over(partition by chave order by 
chave, valor) AS classificacao
                              from teste
                ) x
    where x.classificacao = 1
    order by x.chave;

drop table teste;

Att,

Ricardo Corrales 
ENGSOLUTIONS INFORMÁTICA LTDA
Fábrica de Software:
Rua Couto Magalhães, 1457 - Centro - Franca/SP
(16) 3409-9514 / 3409-9513 
Skype: ricorrales
Cel: (16) 99200-5113
rica...@engsolutions.com.br

"Para ter sucesso é necessário amar de verdade o que se faz!"

-----Mensagem original-----
De: pgbr-geral [mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de 
Eloi
Enviada em: quinta-feira, 1 de outubro de 2015 12:22
Para: Lista PostgreSQL Brasil
Assunto: [pgbr-geral] ajuda com SELECT

Boa tarde a todos na lista,

Gostaria de pedir ajuda para resolver a seguinte questão.

Tenho os seguintes dados:
45101;"A";4
45101;"S";23
45102;"A";4
45103;"S";23
45104;"A";4
45105;"S";23
45105;"W";3
45106;"S";23
45107;"A";4
45108;"W";3
45108;"A";4

Na primeira coluna esta um valor que se repete.
Na segunda coluna letras W, A e S, mas que podem ser outras.
Na terceira coluna o 'peso' correspondente a cada uma das letras. Cada letra 
tem sempre o mesmo peso.

Quero uma elaborar uma consulta onde:
1) o valor da primeira coluna não se repete
2) a letra da segunda coluna é a de menor peso
3) não se exclui os registos quando os valores da primeira coluna que não se 
repetem.

Resultado esperado:
45101;"A";4
45102;"A";4
45103;"S";23
45104;"A";4
45105;"W";3
45106;"S";23
45107;"A";4
45108;"W";3

Obrigado! Atentamente,

Eloi

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a