2017-11-21 70 views
0

複数のテーブルをマージする最適な方法は何ですか?私はすべてのテーブルにわたって一意の識別子を持っています。テーブルをソートした後、すべてのテーブルを1つのステップで結合すべきか、または段階的に1つずつテーブルをマージする必要があります。 これは問題ですか?複数のテーブルをマージするSAS

答えて

2

複数のマージを1回で実行できます。しかし、これは最も安全な方法ではありません。データに不備がある可能性がある場合は、この手順をステップごとに行うのが最善です。イホ、それは一番良い時ですが、あなたの呼び出しです。

proc sort data=data1; by id; run; 
proc sort data=data2; by id; run; 
proc sort data=data3; by id; run; 

data combo; 
    merge data1(in=a) data2(in=b) data3(in=c); 
    by id; 
    if a and b and c; /*Inner join. Change as needed. */ 
run; 

これ

はと等価である:それを行うには特に理由はありません

data partial; 
    merge data1(in=a) data2(in=b); 
    by id; 
    if a and b; 
run; 

data combo; 
    merge partial(in=a) data3(in=b); 
    by id; 
    if a and b; 
run, 
0

ステップバイステップで、あなたはあなたが解決心配競合変数名を得た場合、またはしていない限りあなたのコンビネーションロジックは複雑で、何かを混乱させる心配があります。機能的な理由は何もありません。 SASのmergeは、実際にはSQLではjoinよりややシンプルです。特に構文が単純なので、SQLの場合と多少異なります。

関連する問題