从PostgreSQL表的列中删除重复的值,对于重复的行,每列仅维护一个值

时间:2019-05-07 08:36:32

标签: sql postgresql

我想格式化下表的数据,如下所示。在“值”列上,我只希望对每个重复行保持值不变。

输入表

code    value
A       10
A       10
A       10
B       20
B       20
B       20
C       30
C       30
D       40

预期结果

code    value
A        10
A   
A   
B        20
B   
B   
C        30
C   
D        40

1 个答案:

答案 0 :(得分:1)

CASE和window函数的组合可以解决您的问题

select code, 
       case when t.rn = 1 then value else null end value
from (
    select row_number() over (partition by code, value order by value) rn,
           code, value
    from your_table
) t