merge及其与sql的区别

merge语句

用merge语句将两个或多个SAS数据集中的观测值横向匹配合并成一个新的数据集的一个观测值。

DATA <新数据集名称>;
MERGE <已有数据集列表>;
BY <变量1> [<变量2>…];
RUN;

说明:
1、匹配合并指来自不同数据集中具有至少一个共同变量(匹配变量),按照匹配变量取相同数值的观测值横向合并;
2、用by语句指定匹配的变量;
3、每一个待合并数据集需先按匹配变量排序。

 

merge与SQL合并的区分
merge适合一对一或一对多(多对一)合并
    1.merge a b;by x;相当于SQL的full join:即a full join b on a.x=b.x;
    2.merge a(in=ina) b(in=inb);by x;if ina;相当于sql的左连接 a left join b on a.x=b.x;
    3.merge a(in=ina) b(in=inb);by x;if ina and inb;相当于SQL的内连接:a inner join b on a.x=b.x;
sql适合多对多合并

(两者区别较大:merge只取A.x与B.x的并集,即AUB;而SQL则取两者的笛卡尔乘积数即A.x的数量*B.x的数量)

 

 

参考:

(11条消息) SAS-数据步-合并-Merge语句_c573489167的博客-CSDN博客_sas中merge的用法

谁能讲讲merge和sql合并表格功能特性上的异同 - SAS专版 - 经管之家(原人大经济论坛) (pinggu.org)

posted @   Rachellaw  阅读(241)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示