• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:重複レコードのある項目を比較し更新する方法)

重複レコードの比較と更新方法とは?

このQ&Aのポイント
  • nameカラムの重複レコードを比較し、最新の日付を持つレコードのIDをTGT_IDに格納して更新する方法について教えてください。
  • テーブル内のnameカラムに重複する値がある場合、最新の日付を持つレコードのIDをTGT_IDに入れて更新する方法を教えてください。
  • 重複しているnameカラムのレコードを比較し、最新の日付を持つレコードのIDをTGT_IDに格納して更新する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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 ) と書くしかないように思います。 テストしてないので、チョンボがあるかもしれません。

maryoha
質問者

お礼

チョンボはありませんでした!! 完璧です。 ありがとうございました。

関連するQ&A