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

So finden Sie Top-Verlierer für 1 Tag, 1 Monat basierend auf historischen Daten

Sie könnten so etwas tun*:

select * from (select symbol_name , (prevclose_val-close_val) as losers,'daily' as `type` from historical_data where current_day >= '2015-12-14' order by losers asc limit 10 ) as sub_daily
union
select * from (select symbol_name , (prevclose_val-close_val) as losers,'weekly' as `type` from historical_data where current_day >= '2015-12-7' order by losers asc limit 10 ) as sub_weekly
union
select * from (select symbol_name , (prevclose_val-close_val) as losers,'monthly' as `type` from historical_data where current_day >= '2015-11-14' order by losers asc limit 10 ) as sub_monthly;

Übrigens sollten Sie Ihr Datumsfeld wirklich von "varchar" in "DATE" oder "DATETIME" ändern und yyyy-mm-dd verwenden Format für Ihre Daten. Auf diese Weise können Sie MySQL verwenden, um Berechnungen zu Ihrem Datum durchzuführen.

* Diese Abfrage erfordert Ihren current_day als date oder datetime Typ.