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

Obtenga la fecha más reciente de los datos MySQL agrupados

¿Estás buscando la fecha máxima para cada modelo?

SELECT model, max(date) FROM doc
GROUP BY model

Si está buscando todos los modelos que coincidan con la fecha máxima de toda la tabla...

SELECT model, date FROM doc
WHERE date IN (SELECT max(date) FROM doc)

[--- Agregado ---]

Para aquellos que desean mostrar detalles de cada registro que coincida con la fecha más reciente dentro de cada grupo de modelos (no datos resumidos, como se solicita en el OP):

SELECT d.model, d.date, d.color, d.etc FROM doc d
WHERE d.date IN (SELECT max(d2.date) FROM doc d2 WHERE d2.model=d.model)

MySQL 8.0 y versiones posteriores admiten OVER cláusula, produciendo los mismos resultados un poco más rápido para conjuntos de datos más grandes.

SELECT model, date, color, etc FROM (SELECT model, date, color, etc, 
  max(date) OVER (PARTITION BY model) max_date FROM doc) predoc 
WHERE date=max_date;