全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3172 10
2018-04-24
悬赏 20 个论坛币 已解决
有一数据,含sxid顺序(顺序ID)、ID(ID编号)、name(姓名)、group(组别),其中,ID有缺失,name有多个相同的记录,group相同(比如group=1)并且name相同代表是同一组,否则不是,现在想group及name相同,用有ID记录的值填补ID缺失缺失的值,比如现在用sxid=1 的ID值填到sxid=2的id中去,sxid=3仍然是缺失的,用SQL怎样实现?

复制代码


最佳答案

wwang111 查看完整内容

假设数据集的名字是test: proc sql; create table wanted as select sxid, b.id, a.name, a.group from test a left join (select distinct id, name, group from test where ^missing(id)) b on a.name=b.name and a.group=b.group order by 1; quit;
二维码

扫码加我 拉你入群

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

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

全部回复
2018-4-24 15:39:55
假设数据集的名字是test:

proc sql;
create table wanted as
select sxid, b.id, a.name, a.group
from test a left join (select distinct id, name, group from test where ^missing(id)) b
on a.name=b.name and a.group=b.group
order by 1;
quit;

二维码

扫码加我 拉你入群

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

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

2018-4-24 15:44:00
最终填补结果如下图

1a.png
二维码

扫码加我 拉你入群

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

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

2018-4-26 12:48:32
最近加班比较晚可能没空编写,您也可以尝试利用data步retain加一些if逻辑实现
二维码

扫码加我 拉你入群

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

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

2018-4-26 13:22:32
Tigflanker 发表于 2018-4-26 12:48
最近加班比较晚可能没空编写,您也可以尝试利用data步retain加一些if逻辑实现
谢谢,Data步有点啰嗦
二维码

扫码加我 拉你入群

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

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

2018-4-26 13:22:34
Tigflanker 发表于 2018-4-26 12:48
最近加班比较晚可能没空编写,您也可以尝试利用data步retain加一些if逻辑实现
谢谢,Data步有点啰嗦
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群