2016-11-17 1 views
-3

を識別こんにちはタイムスタンプに基づいてMySQLでの値を比較して傾向

id_indicator value trend date_data 
      1  0  0 2011-08-18 09:16:15 
      1  2  1 2011-08-18 10:16:15 
      1  1 -1 2011-08-18 11:16:15 
      1  2  1 2011-08-18 12:16:15 
      2 21  0 2011-08-18 13:16:15 
      2 21  0 2011-08-18 14:16:15 
      2 21  0 2011-08-18 15:16:15 
      3  3  0 2011-08-18 16:16:15 
      3  4  1 2011-08-18 17:16:15 
      3  4  0 2011-08-18 18:16:15 
      4  4  0 2011-08-18 19:16:15 

表以下のようなMySQLデータベースのテーブルを持っているが値に基づく時刻と別の列の傾向に基づいて指標とその値を含みます。最初はすべてのトレンドは0で、次のインジケータ値が上昇するとトレンドは1になります。トレンドよりも値が小さくなると-1になります。

しかし、のトレンド値がテーブルに正しく入力されていません。今私は間違って挿入されているトレンドの値がどれくらいあるかを識別するのに役立つ必要があります。

私はずっとあなたは以前の値をルックアップするために相関サブクエリを使用することができ、あなたの助けを

おかげ

+0

http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-veryを参照してください。 -simple-sql-query - さらに、データセットは完全に正しいので、おそらく冗長な 'トレンド'列を削除することを除いて、ここでは何もしません。 – Strawberry

+0

私が与えたデータは実際のデータではありませんが、これはテーブル構造です。実際のデータには多くの間違ったトレンド値が含まれています。また、差分時間に入ったので、ここでも重要なデータです。 – Sumon

+0

http://stackoverflow.com/questions/41509627/mysql-how-to-keep-track-of-change-in-value -using-its-trend/41510223これは宿題の質問のようです。 –

答えて

0

を認めるだろう。

SELECT 
    *, 
    (SELECT lookup.value 
     FROM yourTable AS lookup 
     WHERE lookup.id_indicator = yourTable.id_indicator 
     AND lookup.date_data < yourTable.date_data 
    ORDER BY lookup.date_data DESC 
     LIMIT 1 
    ) AS previous_value 
FROM 
    yourTable 
+0

私は結果を得ていません – Sumon

関連する問題