Postgres-查找重复项并将行之一更新为零

时间:2018-11-08 23:47:36

标签: postgresql-9.2

需要您的帮助,以下是我在Postgres中的表结构

Eid     Teamid  Working Days
1000067 166570  21
1000075 163138  21
1000086 163077  21
1000086 185102  21

记录1000086有两支球队,我必须将其中一支球队更新为0天。当用户界面中显示此内容时,经理可以更新,但是请您帮我提供更好的解决方案吗?

我尝试使用其他查询,但发现它有点棘手。

1 个答案:

答案 0 :(得分:0)

我认为此解决方案有效

更新resourcetracker_totaldays设置total_days = 0,其中id =
 从中选择ID (SELECT id,employee_id,total_days,oracle_sub_team_code,ROW_NUMBER()OVER(PARTITION BY employee_id)AS排名   FROM resourcetracker_totaldays   其中month_value ='NOVEMBER')al   排名> 1

我正在查找使该记录在该表中出现第2次,第3次出现的排名,我正在使用排名> 1的记录并将所有这些total_days值更新为0,这将在表中包含所有记录,但是只能有一个团队的total_days。