我遇到了一个涉及大量属性 (>15,000) 的数据挖掘问题。我使用公共(public) Id 字段表示多个表中的数据。删除空属性后,我想合并生成的较小表,以便可以计算相关性以删除冗余属性。
我可以通过以下方式轻松加入表格:
select * from lrg_bin0 k0
join lrg_bin1 k1 on k0.id = k1.id
join lrg_bin2 k2 on k0.id = k2.id
join lrg_bin3 k3 on k0.id = k3.id
但是当我尝试使用以下内容创建新表时:
Create table mrg0 as (
select * from lrg_bin0 k0
join lrg_bin1 k1 on k0.id = k1.id
join lrg_bin2 k2 on k0.id = k2.id
join lrg_bin3 k3 on k0.id = k3.id
)
Postgress 提示“多次指定列“id””
大量的属性意味着我正在以编程方式完成所有操作,因此建议我可以生成的查询的答案将不胜感激。
最佳答案
使用using
in代替on
create table mrg0 as
select *
from
lrg_bin0 k0
join lrg_bin1 k1 using (id)
join lrg_bin2 k2 using (id)
join lrg_bin3 k3 using (id)
Also, USING implies that only one of each pair of equivalent columns will be included in the join output, not both
关于sql - Postgres 通过多个连接创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23083948/