楼主: qisongsong
1247 2

多行记录转成单行 [推广有奖]

  • 0关注
  • 0粉丝

学前班

60%

还不是VIP/贵宾

-

威望
0
论坛币
18 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
60 点
帖子
1
精华
0
在线时间
2 小时
注册时间
2008-9-15
最后登录
2015-12-4

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
比如我现在有4条销售记录,想转成下表的格式,请问怎么写,谢谢
IDbrand

1001

1

1001

2

1001

3

1002

1

idbrand_1brand_2brand_3

1001

1

1

1

1002

1

0

0


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:brand rand bra RAN 记录

沙发
soporaeternus 发表于 2015-12-4 16:13:50 |只看作者 |坛友微信交流群
1 sql 的 sum(case when)
2 仅此例,先id排序,然后
  1. data b;
  2.         set a;
  3.         by id;
  4.         array _x brand_1-brand_3;
  5.         if first.id then do i=1 to 3;_x[i]=0;end;;
  6.         _x[brand]+1;
  7.         if last.id;
  8.         keep id brand_:;
  9. run;
复制代码

使用道具

藤椅
红橙蓝紫 在职认证  发表于 2015-12-4 16:37:42 |只看作者 |坛友微信交流群
用proc transpose也可以啊
data a;
  do id=1001;brand=1;value=1;output;end;
  do id=1001;brand=2;value=1;output;end;
  do id=1001;brand=3;value=1;output;end;
  do id=1002;brand=1;value=1;output;end;
run;
proc sort data=a ;
        by id;
run;

proc transpose data=a out=b(drop=_:) prefix=brand_;
  by id;
  var value;
  id brand;
run;

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-30 20:57