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

Unión de Mysql basada en max (marca de tiempo)

Este problema es bastante común. Necesita una subconsulta para descartar la marca de tiempo máxima y el ratetypeid (que es la base para la agrupación) y luego seleccionar todo lo demás desde una unión interna de las filas de esta subconsulta y todo lo demás.

Para MySQL:

SELECT ratecode, rate, id, ratetypeid, date, entrytimestamp 

FROM ratedefinitions, 
(SELECT ratetypeid, MAX(entrytimestamp) AS max_timestamp FROM Rates 
GROUP BY ratetypeid) AS inner_table

WHERE

inner_table.ratetypeid = ratetypeid
AND innertable.max_timestamp = timestamp