处理 Postgresql 中 Update 语句中的唯一记录和重复记录
Handle Unique and Duplicate records in Update statement in Postgresql
我在 postgresql 9.3 中有一个 table 测试,其字段 ID,sch_item_number 和 dup_test.Schema 名称是 tablet。我需要在某些条件下更新 dup_test,即如果只有唯一的 sch_item_number,那么 dup_test 将是 'diff'。如果重复 sch_item_number,第一条记录重复的 sch_item_number 必须是 'diff',其余的应该是 'same'。请找到随附的屏幕截图。我也分享了 fiddle。 http://sqlfiddle.com/#!9/1b135c
Sch_item_number=项目
您可以尝试以下 sql:
select
a.item,
(Case a.sno when 1 then 'diff' else 'same' end) as dup_test
从 (
select ROW_NUMBER() OVER (PARTITION BY Item ORDER BY Item) as Sno, * 来自
table
)一种
按 a.item 分组,
(案例a.sno when 1 then 'diff' else 'same' end)
我在 postgresql 9.3 中有一个 table 测试,其字段 ID,sch_item_number 和 dup_test.Schema 名称是 tablet。我需要在某些条件下更新 dup_test,即如果只有唯一的 sch_item_number,那么 dup_test 将是 'diff'。如果重复 sch_item_number,第一条记录重复的 sch_item_number 必须是 'diff',其余的应该是 'same'。请找到随附的屏幕截图。我也分享了 fiddle。 http://sqlfiddle.com/#!9/1b135c
Sch_item_number=项目
您可以尝试以下 sql:
select a.item, (Case a.sno when 1 then 'diff' else 'same' end) as dup_test 从 ( select ROW_NUMBER() OVER (PARTITION BY Item ORDER BY Item) as Sno, * 来自 table )一种 按 a.item 分组, (案例a.sno when 1 then 'diff' else 'same' end)