2017-07-25 68 views
0

簡化示例:我的表有4列:ID,姓名,金額和父級。見圖片。在組中找到最高分並更新基於n的列

實際表中的父列當前爲空,需要填充「名稱」列中的條目。

ID是一個非唯一的列,在'Name'列中有多個條目具有相同的ID。

目標是在任何ID的「金額」列中找到最大值條目,並使用「名稱」列中的條目填充「父級」列。 我將發佈的示例表的註釋中的圖片

enter image description here

回答

2

的技術是通過量在子查詢中的排名每個ID內名稱,然後加入它回到源表更新:

update my_table set "parent"="name" 
from (
    select id,"name",row_number() over (partition by id order by "amount" desc) 
    from my_table 
) t 
where my_table.id=t.id 
and t.row_number=1 
+0

嘿!謝謝你:) – Jasmine

+0

@Jasmine - 將它標記爲答案,如果它幫助你 –

+0

@RossPresser完成! – Jasmine