Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Abfrage, die Werte mit den Werten der vorherigen Zeilen vergleicht

Sie können den Preis vor 5 Tagen mit einer korrelierten Unterabfrage abrufen. Tatsächlich können Sie den neuesten Preis auf die gleiche Weise erhalten. Das könnte also der richtige Weg sein:

  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;