Postgres - найти дубликат и обновить одну строку до нуля - PullRequest
0 голосов
/ 09 ноября 2018

нужна ваша помощь, ниже приведена структура моей таблицы в Postgres

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

Запись 1000086 имеет две команды, и мне нужно обновить одну из команд до 0 дней. Когда это отображается в пользовательском интерфейсе, менеджер может обновиться, но не могли бы вы помочь мне с лучшим решением?

Я пытаюсь ответить на разные вопросы, но мне это сложно.

1 Ответ

0 голосов
/ 09 ноября 2018

Я думаю, что это решение работает,

обновить resourcetracker_totaldays set total_days = 0, где id =
выберите идентификатор из (SELECT id, employee_id, total_days, oracle_sub_team_code, ROW_NUMBER () OVER (PARTITION BY employee_id) AS занимает место FROM resourcetracker_totaldays где month_value = 'НОЯБРЬ') al где занимает> 1

Я нахожу ранг, который дает мне 2-е, 3-е вхождения этой записи в этой таблице, я беру записи с рангами> 1 и обновляю все эти значения total_days до 0, это будет иметь все записи в таблице, но будет иметь total_days только для одной команды.

...