向所有其他行中的每行添加值。 SQL

问题描述:

我得到了我想要得到的表一样,该表向所有其他行中的每行添加值。 SQL

ID 
1 
2 
3 
4 

ID Values 
1 234 
2 134 
3 124 
4 123 

什么,我试图做的是从所有其他行添加到每个行ID。

我试图使用except或not exists方法,但它不起作用。

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) 

) 
+2

使用该表格数据,预期结果是什么? (格式化文本也在这里。) – jarlh

+0

是唯一密钥的ID? –

+0

请注意,你会很快遇到一些非常长的数字。例如。如果你有100行,1.000行或50.000行。 – ssn

你可以这样做:

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小提琴(现在比较慢)。