我有一个巨大的数据,这张图片显示了我的数据样本:
我想制作边缘清单。如果column1=column2=column3=column4=column6
的行值相同,则第5列的行值之间存在关系(边),结果应如下图所示:
有没有办法做到这一点? postgresQL或Python或R可以帮我吗?
如果我理解正确,你想要一个自我加入:
select t1.col5 as vertex_1, t2.col5 as vertex_2
from t t1 join
t t2
on t1.col1 = t2.col1 and t1.col2 = t2.col2 and t1.col3 = t2.col3 and
t1.col4 = t2.col4 and t1.col6 = t2.col6 and
t1.col5 <> t2.col5;
我不知道你是否想要无向或有向的边缘。如果是无向的,则将最后一个条件更改为:t1.col5 < t2.col5
。
您想要的是结果列表中的唯一元素。查看SQL关键字“unique”/“distinct”,它们可能用于生成唯一的行。