Saltar al contenido

Obtenga la última fecha de datos MySQL agrupados

Solución:

¿Buscas 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)

[— Added —]

Para aquellos que desean mostrar detalles de cada registro que coincida con la última fecha dentro de cada grupo de modelos (no datos de resumen, 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 son compatibles con 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;

Puede intentar usar max () en la subconsulta, algo como esto:

SELECT model, date  
FROM doc 
WHERE date in (SELECT MAX(date) from doc GROUP BY model);

Subconsulta dando fechas. No nos vinculamos con el modelo. Entonces, la siguiente consulta resuelve el problema.

Si hay fechas / modelos duplicados, puede evitarse mediante la siguiente consulta.

select t.model, t.date
from doc t
inner join (select model, max(date) as MaxDate from doc  group by model)
tm on t.model = tm.model and t.date = tm.MaxDate
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *