Mysql
 sql >> Database >  >> RDS >> Mysql

Ottieni l'ultima data dai dati MySQL raggruppati

Cerchi la data massima per ogni modello?

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

Se stai cercando tutti i modelli corrispondenti alla data massima dell'intera tabella...

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

[--- Aggiunto ---]

Per coloro che desiderano visualizzare i dettagli di ogni record corrispondente all'ultima data all'interno di ciascun gruppo di modelli (non dati di riepilogo, come richiesto nell'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 e versioni successive supportano OVER clausola, producendo gli stessi risultati un po' più velocemente per set di dati più grandi.

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;