sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo obtener el último registro en cada grupo usando GROUP BY?

Debería averiguar la última timestamp valores en cada grupo (subconsulta), y luego una esta subconsulta a la tabla -

SELECT t1.* FROM messages t1
  JOIN (SELECT from_id, MAX(timestamp) timestamp FROM messages GROUP BY from_id) t2
    ON t1.from_id = t2.from_id AND t1.timestamp = t2.timestamp;