【发布时间】:2018-01-24 13:17:08
【问题描述】:
我有多个格式相同且变量相同的主表。我现在想加入另一个变量,但由于计算机上的存储空间有限,我无法合并主表。有没有一种方法可以让我将一个变量加入到一个 PROC SQL 中的多个主表中?也许在宏的帮助下?
LEFT JOIN 代码对于一个连接看起来像这样,但我正在寻找一种替代方法,而不是复制和粘贴 5 次:
PROC SQL;
CREATE TABLE New AS
SELECT a.*, b.Value
FROM Old a LEFT JOIN Additional b
ON a.ID = b.ID;
QUIT;
【问题讨论】:
-
如果你的内存不足,我建议你这个'老派':1)按公共变量对数据进行排序。 2) 通过公共变量使用
Merge语句。查看更多来自documentation.sas.com/… -
@pinegulf Storage != 内存,如果比数据步合并(不一定需要排序,可能会使用内存),SQL 的存储空间会更轻。
-
表是否在 SAS 中压缩?如果没有,也许您可以这样做以释放空间。
-
我还要注意,您上面描述的存储效率并不比将它们全部组合到一个表中更有效:您在这里的总存储量增加了一倍。如果这是可以接受的,那么这里的视图可能足以进行初始合并前合并?