Marco,

Cara, Muito bom... melhorou o meu select 100%.
devem ser anos de experiencia para se tornar tao simples fazer este select


Abcs


Jefferson

> Date: Thu, 28 Apr 2011 14:41:28 -0300
> From: [email protected]
> To: [email protected]; [email protected]
> Subject: Re: [pgbr-geral] Select para retornar ultimo valor de cada ID
> 
> Em 28 de abril de 2011 14:28, Fábio Gibon - Comex System
> <[email protected]> escreveu:
> > Que tal assim:
> >
> > SELECT distinct on (p.pessoa_id) p.pessoa_id,
> > p.nome,
> > f.fone
> > FROM pessoas p,
> >            fones_pessoas
> > WHERE
> >           p.pessoa_id=f.pessoa_id;
> >
> > abraços
> >
> > Fábio Henrique Gibon
> >
> 
> Eu havia testado assim também mas o explain fez eu buscar alternativas
> até chegar a que eu enviei anteriormente:
> 
> --------------
> explain select pes.*, (select numero from telefone where id_pessoa =
> pes.id limit 1) telefone
> from pessoa pes;
> 
> Seq Scan on pessoa pes  (cost=0.00..1663.20 rows=320 width=222)
>   SubPlan 1
>     ->  Limit  (cost=0.00..5.16 rows=1 width=58)
>           ->  Seq Scan on telefone  (cost=0.00..20.63 rows=4 width=58)
>                 Filter: (id_pessoa = $0)
> 
> -------------- Adaptado para meu teste...
> 
> explain SELECT distinct on (p.id) p.id,
> p.nome,
> f.numero
> FROM pessoa p,
>            telefone f
> WHERE
>           p.id=f.id_pessoa;
> 
> Unique  (cost=88.75..93.00 rows=320 width=280)
>   ->  Sort  (cost=88.75..90.87 rows=850 width=280)
>         Sort Key: p.id
>         ->  Hash Join  (cost=17.20..47.39 rows=850 width=280)
>               Hash Cond: (f.id_pessoa = p.id)
>               ->  Seq Scan on telefone f  (cost=0.00..18.50 rows=850 width=62)
>               ->  Hash  (cost=13.20..13.20 rows=320 width=222)
>                     ->  Seq Scan on pessoa p  (cost=0.00..13.20
> rows=320 width=222)
> 
> --------------
> 
> 
> Eu também não entendi o pq do max(fone) e max(mail).
> 
> -- 
> Marcone Peres - DBA
> http://www.linkedin.com/in/marconeperes
> (61) 8146-0028
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
                                          
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a