SAS SQL聚合行

时间:2014-07-26 23:46:54

标签: sql sas

我是SAS新手,我正在使用大型数据集来创建一个包含每组id数据的列。我的数据集的简化形式如下所示:

ID名称

1 AAA   
1 AAA   
1 BBB   
2 CCC   
2 CCC   
2 AAA   
3 DDD
3 BBB
3 AAA
4 BBB
4 BBB 

我要找的结果是:

ID名称NEW_ID

1  AAA     AAA, BBB
1  AAA     AAA, BBB
1  BBB     AAA, BBB
2  CCC     CCC, AAA
2  CCC     CCC, AAA
2  AAA     CCC, AAA
3  DDD     DDD, BBB, AAA
3  BBB     DDD, BBB AAA
3  AAA     DDD, BBB, AAA
4  BBB     BBB

非常感谢您的帮助。记住ID可能并不总是作为一个数字。谢谢。

1 个答案:

答案 0 :(得分:0)

我无法想到在单个数据步骤中执行此操作的方法。但是2很容易。首先收集值,然后将它们连接回主数据集。

data first;
set have;
by id;
format COL $2000.;
retain COL;

if ^last.id then
   col = strip(col) || strip(name) || ",";
else do;
   col = strip(col) || strip(name);
   output;
end;
run;

data want;
merge have first;
by id;
run;