sql >> Database >  >> RDS >> Mysql

Topverliezers vinden voor 1 dag, 1 maand op basis van historische gegevens

Je zou zoiets als dit kunnen doen*:

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;

Trouwens, je moet je datumveld echt veranderen van "varchar" in "DATE" of "DATETIME" en yyyy-mm-dd gebruiken formaat voor uw data. Op die manier kun je MySQL gebruiken om berekeningen te maken op je date.

* deze zoekopdracht vereist uw current_day veld moet een date zijn of datetime typ.




  1. Installeer luaSQL op Ubuntu

  2. MySQL - Tijdoverlappingen vinden

  3. #1062 - Dubbele invoer voor sleutel 'PRIMARY'

  4. Query om alle records te krijgen totdat de som van de kolom kleiner is dan of gelijk is aan een waarde