【发布时间】:2015-05-13 13:25:07
【问题描述】:
例如,在 SAS 中,我在数据集 A(左下方)中有 5 个 ID。有一个数据集 B,(可能包含一些 A 的 ID,右下方)。我需要在 A 和 B 上找到一个独特的组合(A 是主要结果数据集),性别相同,年龄范围在 5 以内,收入范围在 10000.Tt 内可能有很多 b.id 可以与 a.id 合并。但关键是,我只能使用一次 b.id。在这种情况下,101 与 106 合并,102 与 111,103 合并与 112,105 与 110 合并。抱歉,我很难描述我的问题。希望它足够清楚。谢谢!
ID sex age income ID sex age income
101 F 30 20000 106 F 26 21000
102 M 20 10000 102 M 20 10000
103 F 38 30000 110 M 45 44000
104 M 55 35000 111 M 19 14000
105 M 43 45000 112 F 33 34000
结果
ID_a sex_a age_a income_a ID_b sex_b age_b income_b
101 F 30 20000 106 F 26 21000
102 M 20 10000 111 M 19 14000
103 F 38 30000 112 F 33 34000
104 M 55 35000
105 M 43 45000 110 M 45 44000
【问题讨论】:
-
您能告诉我们您尝试了哪些查询,以便我们帮助指出您的方法存在的问题吗?
-
不,我不明白。什么链接 101 到 106?你根据什么规则来配对记录?
-
在实际情况下,我在 A 中有 100 个唯一 ID,在 B 中有 300 个唯一 ID,可能有很多 b.id 可以与 a.id 合并。但关键是,我只能使用一次 b.id。我认为这不是我可以做的一个左连接......也许在 SQL 中我们有一些函数可以解决这个难题?
-
您好,Thorsten Kettner。我添加一个结果....
-
好吧,我还是不明白。我仍然不知道为什么您将 101 与 106 结合起来,而不是与 112 结合。合并两条记录的规则是什么? (顺便说一句:使用@Thorsten Kettner 来回复。否则我不会收到任何通知并且可能不会回来。)
标签: sql join sas combinations datastep