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

Comment trouver les meilleurs perdants pour 1 jour, 1 mois sur la base des données historiques

Vous pourriez faire quelque chose comme ceci* :

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;

Au fait, vous devriez vraiment changer votre champ de date de "varchar" en "DATE" ou "DATETIME" et utiliser yyyy-mm-dd format pour vos dates. De cette façon, vous pouvez utiliser MySQL pour faire des calculs sur votre rendez-vous.

* cette requête nécessite votre current_day le champ doit être une date ou datetime saisir.