Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

GROUP BY tendo MAX data


Colocar a subconsulta na cláusula WHERE e restringi-la a n.control_number significa que ela executa a subconsulta muitas vezes. Isso é chamado de subconsulta correlacionada , e muitas vezes é um assassino de desempenho.

É melhor executar a subconsulta uma vez, na cláusula FROM, para obter a data máxima por número de controle.
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);