- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:重複レコードのある項目を比較し更新する方法)
重複レコードの比較と更新方法とは?
このQ&Aのポイント
- nameカラムの重複レコードを比較し、最新の日付を持つレコードのIDをTGT_IDに格納して更新する方法について教えてください。
- テーブル内のnameカラムに重複する値がある場合、最新の日付を持つレコードのIDをTGT_IDに入れて更新する方法を教えてください。
- 重複しているnameカラムのレコードを比較し、最新の日付を持つレコードのIDをTGT_IDに格納して更新する方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
タイトルに書かれているように、”更新”するのが最終目標なんですよね? 更新するのであれば... (分析関数の使えるオラクルの場合) update テーブル x set tgt_id = (select id from (select id,row_number() over(partition by name order by date desc) R from テーブル y where x.name=y.name) where R=1) where name in ( select name from テーブル名 group by name having count(*) > 1 ) と書きたいところだけど、サブクエリの相関条件がネストが深くてエラーになる はずなので、効率を犠牲にして・・ update テーブル x set tgt_id = (select id from (select id,name,row_number() over(partition by name order by date desc) R from テーブル y) z where z.name=x.name and R=1) where name in ( select name from テーブル名 group by name having count(*) > 1 ) と書くしかないように思います。 テストしてないので、チョンボがあるかもしれません。
お礼
チョンボはありませんでした!! 完璧です。 ありがとうございました。