On 11:14 am 08/07/08 "Yoel Mc Lennan" <[EMAIL PROTECTED]> wrote: > id_telefono | id_empresa | numero | version > 1 1 444-4545 1 > 2 2 33333333 1
Creo que lo que necesitas es "distinct on" drop table if exists telefonos_prueba; create temp table telefonos_prueba ( id_telefono smallint, id_empresa smallint, numero text, version smallint ); insert into telefonos_prueba values (1,1,'111-1111',1); insert into telefonos_prueba values (2,2,'222-2222',1); insert into telefonos_prueba values (3,3,'333-3333',1); insert into telefonos_prueba values (4,3,'111-1111',2); insert into telefonos_prueba values (5,2,'222-2222',2); insert into telefonos_prueba values (6,1,'333-3333',2); select distinct on (numero) numero,id_empresa,version from telefonos_prueba order by numero,version desc ; ------------ Sale un resultado numero | id_empresa | version ----------+------------+--------- 111-1111 | 3 | 2 222-2222 | 2 | 2 333-3333 | 1 | 2 (3 rows) No trates de poner id_empresa en el order by.. va a cambiar el resultado. si el orden final es importante usa un sub-query para ordernar el orden final. Una nota.. para la proxima ayuda si pones el SQL para crear la tabla e insertar los records. :-) Espero esto sea lo que andas buscando. Este metodo lo aprendi en la lista en Ingles. Salve el correo para mometos como este.. Estaba buscando el correo para poder atribuir la respuesta a la persona que originalmente lo recomendo, pero no encuentro el correo ahora. :-( Ultima nota... Creo que distinct on, no es parte del ANSI SQL, asi que si estan en otra base de datos creo que ese metodo pueda que no exista. -- TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
