从所有其他行添加到每一行的值。 SQL

时间:2017-08-10 11:12:56

标签: sql postgresql select

我拿到了桌子

ID  
1   
2   
3   
4   

我想得到这样的表格。

ID  Values
1   234
2   134
3   124
4   123

我要做的是从所有其他行添加每一行ID。

我尝试使用除了或不存在方法但它不起作用。

union_poly AS (
    SELECT b.id FROM poly b
    EXCEPT (SELECT * FROM poly ct)
    --WHERE NOT EXISTS(SELECT * FROM poly ct WHERE b.id <> ct.id)

  )

1 个答案:

答案 0 :(得分:1)

你可以这样做:

select id,
       (select string_agg(t2.id::text, '' order by t2.id)
        from t t2
        where t2.id <> t.id
       ) as ids
from t;

Here是Rextester。 And一个SQL小提琴(这些天它很慢)。