Mysql
 sql >> Base de données >  >> RDS >> Mysql

Maximum par groupe

Vous pouvez utiliser cette requête. Vous pouvez obtenir des résultats en 75 % moins de temps. J'ai vérifié avec plus d'ensemble de données. Les sous-requêtes prennent plus de temps.

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 lien