我想将一张桌子附加到另一张桌子上。两个表可能具有不同的列。结果应该是一个包含所有列的表,并且在其中值不存在的地方,应该是缺少的观察值。数据是时间序列的-由于时间跨度的限制,我从不同的来源获取数据-因此我需要将它们彼此“堆叠”,但可能是添加或删除了另一列。
由于行中有一点重叠,因此我在寻找一种解决方案,该方案将采用第一个表的数据。然后的问题是,对于表1中不存在的那些列,当我在表2中选择表1时,它们也不存在。
当前的解决方案是切除表2,因此没有重叠。
表格1:
date AA BB CC DD
20100101 9 10 11 12
20100102 10 11 12 13
表2:
date AA BB CC EE FF
20100102 99 99 10
20100103 11 12 13 14 10
20100104 12 13 14 15 11
结果应该是
date AA BB CC DD EE FF
20100101 9 10 11 12
20100102 10 11 12 13 99 10
20100103 11 12 13 14 10
20100104 12 13 14 15 11
因此,实际上,我没有任何建议可以按照此处的建议进行“联接”:具有不同列的两个表的SQL联合
coalesce
函数可以像下面这样使用:
select coalesce(t1.date,t2.date) date,
coalesce(t1.aa,t2.aa) aa,
coalesce(t1.bb,t2.bb) bb,
coalesce(t1.cc,t2.cc) cc,
t1.dd,
t2.ee,
t2.ff
from table1 t1 full outer join table2 t2 on ( t1.date = t2.date );
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句