sql >> Base de Datos >  >> RDS >> Mysql

Cómo encontrar a los principales perdedores durante 1 día, 1 mes según los datos históricos

Podrías hacer algo como esto*:

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;

Por cierto, deberías cambiar tu campo de fecha de "varchar" a "DATE" o "DATETIME" y usar yyyy-mm-dd formato para sus fechas. De esa forma puedes usar MySQL para hacer cálculos en tu cita.

* esta consulta requiere su current_day campo para ser una date o datetime tipo.