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
