sql >> データベース >  >> RDS >> Mysql

過去のデータに基づいて1日1か月のトップ敗者を見つける方法

    あなたはこのようなことをすることができます*:

    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;
    

    ちなみに、実際には日付フィールドを「varchar」から「DATE」または「DATETIME」に変更し、yyyy-mm-ddを使用する必要があります。 日付のフォーマット。そうすれば、MySQLを使用して日付の計算を行うことができます。

    *このクエリにはcurrent_dayが必要です dateとなるフィールド またはdatetime タイプ。




    1. MySQLステートメントの実行には1分以上かかります

    2. タイムスタンプのフォーマット

    3. postgresの行をマージし、nullでない場合は値を最新のものに置き換えます

    4. MySql-設定された間隔でIDの範囲を選択する方法