Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como encontrar os principais perdedores por 1 dia, 1 mês com base em dados históricos


Você poderia fazer algo assim*:
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;

A propósito, você deve realmente alterar seu campo de data de "varchar" para "DATE" ou "DATETIME" e usar yyyy-mm-dd formato para suas datas. Dessa forma, você pode usar o MySQL para fazer cálculos em sua data.

* esta consulta requer seu current_day campo para ser uma date ou datetime modelo.