Alomejor el nuevo lateral join de postgresql te puede ayudar en esto: http://blog.heapanalytics.com/postgresqls-powerful-new-join-type-lateral/
2016-04-27 13:01 GMT-05:00 Edwin De La Cruz <edwinsp...@gmail.com>: > Saludos > > El día 27 de abril de 2016, 11:17, Edwin De La Cruz > <edwinsp...@gmail.com> escribió: > > > > El 27/04/2016 08:59, "Anthony Sotolongo" <asotolo...@gmail.com> > escribió: > >> > >> HOla Edwin, una buena opcion es usar WINDOWS FUNCTIONS y una posible > >> solucion pudiera ser: > >> > >> > >> with resultado as ( > >> select row_number()OVER (PARTITION BY idevettype,idaccount, zu order by > >> idevent desc ) as num, *,max(dateevent )OVER (PARTITION BY idevettype, > >> idaccount, zu order by idevent desc ) from ( values (1, 56, 1, 100, > >> '03/01/16 00:00'::timestamp), > >> (2, 62, 1, 100, '04/01/16 00:00'::timestamp), > >> (3, 62, 2, 100, '03/01/16 20:45'::timestamp), > >> (4, 56, 1, 100, '04/01/16 10:00'::timestamp), > >> (5, 56, 9, 200, '03/01/16 00:00'::timestamp), > >> (6, 62, 1, 200, '04/01/16 15:00'::timestamp), > >> (7, 56, 1, 100, '07/01/16 00:00'::timestamp), > >> (8, 62, 1, 100, '09/01/16 00:00'::timestamp), > >> (9, 62, 1, 100, '09/01/16 13:00'::timestamp), > >> (10, 56, 1, 100, '09/01/16 15:12'::timestamp) > >> > >> ) AS tabla (idevent ,idevettype ,zu ,idaccount, dateevent) > >> ) > >> > >> select idevent, idevettype, zu, idaccount, dateevent from resultado > where > >> num<2 > >> > >> > > Justo una asi fue que vi en una de las tantas paginas que lei pero la > verdad que no la entendi y el ejemplo era para Sql Server. > Tengo aun mucho por leer :) > Gracias. > > >> saludos > >> > >> > >> El 27 de abril de 2016, 10:22, Edwin De La Cruz <edwinsp...@gmail.com> > >> escribió: > >>> > >>> Saludos cordiales. > >>> Tengo una tabla cuyos campos relevantes son: > >>> idevent idevettype zu idaccount dateevent > >>> 1 56 1 100 03/01/16 00:00 > >>> 2 62 1 100 04/01/16 00:00 > >>> 3 62 2 100 03/01/16 20:45 > >>> 4 56 1 100 04/01/16 10:00 > >>> 5 56 9 200 03/01/16 00:00 > >>> 6 62 1 200 04/01/16 15:00 > >>> 7 56 1 100 07/01/16 00:00 > >>> 8 62 1 100 09/01/16 00:00 > >>> 9 62 1 100 09/01/16 13:00 > >>> 10 56 1 100 09/01/16 15:12 > >>> > >>> Y necesito una consulta que me devuelva algo asi: > >>> > >>> idevent idevettype zu idaccount dateevent > >>> 10 56 1 100 09/01/16 15:12 > >>> 9 62 1 100 09/01/16 13:00 > >>> 6 62 1 200 04/01/16 15:00 > >>> 3 62 2 100 03/01/16 20:45 > >>> 5 56 9 200 03/01/16 00:00 > >>> > >>> > >>> Usando la consulta: > >>> SELECT ideventtype, zu, idaccount, MAX(dateevent) AS de FROM events > >>> where (idaccount = 100 OR idaccount = 200) GROUP BY ideventtype, > >>> idaccount, zu; > >>> > >>> Me devuelve las filas que esperaría recibir, pero.... el campo que > >>> necesito en realidad es el idevent, si agrego esa columna a la > >>> consulta obtengo el error: > >>> > >>> ERROR: la columna «events.idevent» debe aparecer en la cláusula GROUP > >>> BY o ser usada en una función de agregación > >>> SQL state: 42803 > >>> Character: 8 > >>> > >>> > >>> Quiza sea una pregunta de novato pero he leído y leído y en ningún > >>> caso he conseguida hacer que funcione como espero. > >>> Encontré una solución a lo que necesito pero era para SQL SERVER con > >>> unas funciones que no había visto antes, ahora mismo no recuerdo y no > >>> reencuentro el link para ponerlo aqui. > >>> > >>> > >>> Espero que alguien que se haya visto en este caso o similar me pueda > >>> orientar un poco. > >>> > >>> > >>> Mis proyectos de software libre en: > >>> Github - edwinspire > >>> > >>> - > >>> Enviado a la lista de correo pgsql-es-ayuda > >>> (pgsql-es-ayuda@postgresql.org) > >>> Para cambiar tu suscripción: > >>> http://www.postgresql.org/mailpref/pgsql-es-ayuda > >> > >> > > > > Gracias a todos por sus sugerencias. Les pruebo y les comentó. > > - > Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org > ) > Para cambiar tu suscripción: > http://www.postgresql.org/mailpref/pgsql-es-ayuda > -- Lindolfo Iván Perales Mancinas Solo existen 10 tipos de personas en el mundo, las que saben binario y las que no.