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 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 >