sql >> Databáze >  >> RDS >> Mysql

Jak najít nejprohranější za 1 den, 1 měsíc na základě historických dat

Můžete udělat něco takového*:

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;

Mimochodem, měli byste opravdu změnit pole data z "varchar" na "DATE" nebo "DATETIME" a použít yyyy-mm-dd formát pro vaše data. Tímto způsobem můžete používat MySQL k provádění výpočtů na vašem rande.

* tento dotaz vyžaduje váš current_day pole na date nebo datetime typ.




  1. Proveďte uloženou proceduru SQL a zpracujte výsledky

  2. Jak InnoDB ukládá sloupce znaků?

  3. Limit hloubky zásobníku překročen v PostgresQL (po smazání spouštěče)

  4. Jaký je typ čekání ASYNC NETWORK IO?