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

Máximo por grupo

Puedes usar esta consulta. Puede lograr resultados en un 75% menos de tiempo. Lo comprobé con más conjunto de datos. Las subconsultas requieren más tiempo.

SELECT p1.id, 
       p1.security, 
       p1.buy_date 
       FROM positions p1
left join
            positions p2
                on p1.security = p2.security
                   and p1.buy_date < p2.buy_date
      where 
      p2.id is null;

SQL-Fiddle enlace