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

Requête MySQL comparant les valeurs aux valeurs des lignes précédentes

Vous pouvez obtenir le prix il y a 5 jours en utilisant une sous-requête corrélée. En fait, vous pouvez obtenir le prix le plus récent de la même manière. Donc, ceci pourrait être le bon chemin :

  select s.*,
         (select p.close
          from prices p
          where p.id = s.id
          order by date desc
          limit 1
         ) as Close,
         (select p.close
          from prices p
          where p.id = s.id and p.date <= date(now()) - interval 5 day
          order by date desc
          limit 1
         ) as Close_5
  from stocks s
  having Close > Close_5;