交并与拼接

交并用于根据连接条件组合两个视图中的行。

交并语法

merge leftView, rightView [方法] [条件]

交并 [方法] 有:inner (默认), crossleftsemiantirightfull

交并 [条件] 与传统 SQL JOIN ON 后的关联表达式一样,如果不带关联表达式则会自动查找名称相同的列进行关联,有多少个相同就关联多少个。

merge view1, view2 cross { view1.product_id=view2.product_id and .. };

-- 自动查找相同的列进行关联,且关联方法默认为 inner
merge view1, view2;

拼接

与交并不同,它只是简单通过行或列拼接形成新的视图。

拼接语法

align [方式] viewName1, viewName2, ..
    [option method='inner']

拼接 [方式] 有:rowcol,默认按列拼接,即按照相同列名追加在前一个视图的后面。

按行拼接 method 有:inner (默认), cross, outer, full, fullouter, full_outer, left, leftouter, left_outer, right, rightouter, right_outer, semi, leftsemi, left_semi, anti, leftanti;默认 inner

按列拼接 method 有:position (默认), name;同时按列还有一个选项 allowMissingColumns =’true’|’false’:列是否允许缺失值

按行拼接

不需要指定关联主键,自动生成待拼接视图的行索引进行关联。

align row df1, df4 option method='inner'
_images/merging_concat_axis1_join_axes.png

按列拼接

align col df1, df2
_images/merging_append1.png
align col df1, df4 option method='name', allowMissingColumns=true
_images/merging_append2.png