首页 > 解决方案 > 如何在sql数据库中使用相同的名称将不同的ID更新为相同的ID

问题描述

我必须消除不同的 id 并使用 SQL 中的相同产品名称列更新具有第一个 id 的 id,例如:

实际表:

id     product_name
-------------------
p1     apple
p2     apple
p3     grape
p4     grape
p5     grape

更新后的表格应如下所示:

id     product_name
-------------------
p1     apple
p1     apple
p3     grape
p3     grape
p3     grape

标签: sqlamazon-redshift

解决方案


您可以尝试加入计算目标 id 的派生表,如下所示:

update t
set t.id = x.id
from mytable t
inner join (
    select product_name, min(id) id from mytable group by product_name
) x on x.product_name = t.product_name

推荐阅读