Edwin como estás? como te comentaban, con funciones de ventana lo podes resolver, ya lo hiciste?
El 27 de abril de 2016, 15:10, Ivan Perales M. <ivan.pera...@gmail.com> escribió: > 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. >