Mysql
 sql >> Database >  >> RDS >> Mysql

Massimo per gruppo

Puoi usare questa query. Puoi ottenere risultati nel 75% in meno di tempo. Ho controllato con più set di dati. Le sottoquery richiedono più tempo.

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 link