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

GRUPO POR tener fecha MAX

Poner la subconsulta en la cláusula WHERE y restringirla a n.control_number significa que ejecuta la subconsulta muchas veces. Esto se llama una subconsulta correlacionada , y a menudo es un asesino del rendimiento.

Es mejor ejecutar la subconsulta una vez, en la cláusula FROM, para obtener la fecha máxima por número de control.

SELECT n.* 
FROM tblpm n 
INNER JOIN (
  SELECT control_number, MAX(date_updated) AS date_updated
  FROM tblpm GROUP BY control_number
) AS max USING (control_number, date_updated);