在组中查找最高并根据该列更新列

时间:2017-07-25 18:26:20

标签: sql amazon-redshift sequel

简化示例:我的表有4列:ID,Name,Amount和Parent。见图。

实际表中的父列当前为空,需要使用“" Name"”列中的条目填充。

ID是一个非唯一列,列中有多个条目'名称'具有相同的ID。

目标是在列中找到最大值条目" Amount"对于任何ID并填充列" Parent"列中的条目"名称"。 我将在评论中发布示例表的图片

enter image description here

1 个答案:

答案 0 :(得分: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