2017-11-20 6 views
-1

複数のレコードが重複したステータス値を含むテーブルがあります。Oracleは定期的にレコードを選択して更新します

DEVICE STATUS  CHANGE_DATE 
1  1  21.11.2017 12:01 
1  0  21.11.2017 13:05 
1  1  21.11.2017 14:06 
1  0  21.11.2017 14:26 
1  1  21.11.2017 14:36 
2  0  21.11.2017 15:28 
2  1  21.11.2017 15:39 

デバイスのステータス変更priodically。このようになります。1.

クエリ結果が最初の質問がある

  1. は、私は、デバイスIDによって最後のステータスを選択します。

    DEVICE STATUS  CHANGE_DATE 
    1  1 21.11.2017 14:36 
    2  1 21.11.2017 15:39 
    
    1. 2番目のクエリは、同じ結果の更新についてです。データは次のように付属している場合:
    DEVICE STATUS  CHANGE_DATE 
    1  1  11.11.2017 12:36 
    1  1  21.11.2017 14:36 
    2  1  21.11.2017 15:39 
    

    装置1は、古い日付です。そして、レコードを更新したいのは、古い2日間です。

    これらのoracleクエリーはどのように作成できますか?古いレコードを選択して更新します。

+1

OracleまたはPostgreSQLを使用していますか? – jarlh

+0

何を試しましたか?あなたの現在のクエリの試みを私たちに教えてください。 – jarlh

+0

互換性のないデータベースタグを削除しました。 –

答えて

0

私はこの質問をあまりにも広すぎると思っています。しかし、私は最初の部分に答えます:

select t.* 
from (select t.*, 
      row_number() over (partition by device order by change_date desc) as seqnum 
     from t 
    ) t 
where seqnum = 1; 

私は「更新」は別の質問であるべきだと思います。

関連する問題