sql >> Databasteknik >  >> RDS >> Mysql

Hur man hittar Top Losers för 1 dag, 1 månad baserat på historiska data

Du kan göra något sånt här*:

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;

Förresten, du borde verkligen ändra ditt datumfält från "varchar" till "DATE" eller "DATETIME" och använda yyyy-mm-dd format för dina datum. På så sätt kan du använda MySQL för att göra beräkningar på ditt datum.

* denna fråga kräver din current_day fältet ska vara ett date eller datetime typ.




  1. Hur man uttrycker en Serialiserbar Blob-typ i en vilolägesmappningsfil

  2. Finns det en MySQL-motsvarighet till PHPs preg_replace?

  3. Hur modellerar man effektivt arv i en databas?

  4. AUTONOMOUS_TRANSACTION