楼主: james_632
12092 12

[原创博文] 关于data步去重,和where使用的一些问题。 [推广有奖]

  • 4关注
  • 0粉丝

小学生

64%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
51 点
帖子
8
精华
0
在线时间
8 小时
注册时间
2012-3-29
最后登录
2014-2-25

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
proc sql;;
    create table abc as
    select distinct no as id,time
    from aaa
    where no in (select id from we);
  quit;

  上面效率太低了。我想把上面这段用用data 步来做,如下,但是如何好像没有可以直接从abc中去重的办法?
  where no in (select id from we) 这段是否只能用modify的 _iorc_ 能做到相似的效果?
新手,麻烦给点儿思路。

data abc ;
set Org_data(keep=extid time);
run;
data abc;
modify abc aaa;
by no ;
if (^ _iorc_)  then remove;
二维码

扫码加我 拉你入群

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

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

关键词:data步 Where HERE Data whe

沙发
liuyingbei 在职认证  发表于 2012-5-3 12:17:21 |只看作者 |坛友微信交流群
可以用data步骤做合并,然后排序id只取first.id
孜孜以求

使用道具

可以通过宏来写,把这句(select id from we)付给宏变量id1-id&i,之后把宏变量组织成一个宏变量,在用data的where no in (你的最后的宏变量)

使用道具

板凳
james_632 发表于 2012-5-3 12:55:32 |只看作者 |坛友微信交流群
liuyingbei 发表于 2012-5-3 12:17
可以用data步骤做合并,然后排序id只取first.id
牛叉啊。 这个办法好好好好好啊

使用道具

报纸
james_632 发表于 2012-5-3 12:58:26 |只看作者 |坛友微信交流群
chendonghui1987 发表于 2012-5-3 12:38
可以通过宏来写,把这句(select id from we)付给宏变量id1-id&i,之后把宏变量组织成一个宏变量,在用data的wh ...
不错不错。我试试。

使用道具

地板
james_632 发表于 2012-5-3 13:22:42 |只看作者 |坛友微信交流群
chendonghui1987 发表于 2012-5-3 12:38
可以通过宏来写,把这句(select id from we)付给宏变量id1-id&i,之后把宏变量组织成一个宏变量,在用data的wh ...
是 proc sql;
    select id into :extids2 from Org_data;
  quit;
这么写的不?(应该错了吧?如何放多个值呢?)
然后是 where no in '&extids2 '?

使用道具

7
chendonghui1987 发表于 2012-5-3 14:07:40 |只看作者 |坛友微信交流群
proc sql noprint;
select count(id) into :cnt from org_data;
%let cnt = &cnt;
select id into :id1 - :id&cnt from org_data;
quit;

使用道具

8
chendonghui1987 发表于 2012-5-3 14:08:47 |只看作者 |坛友微信交流群
之后还要把所有的id都给一个新的宏变量,新的宏变量的组织是'a','b','c'

使用道具

9
james_632 发表于 2012-5-3 14:59:53 |只看作者 |坛友微信交流群
chendonghui1987 发表于 2012-5-3 14:08
之后还要把所有的id都给一个新的宏变量,新的宏变量的组织是'a','b','c'
我得到的数据是 20062041,200620414......
当我where extid in (&list_a); 的时候报错说where子句运算符要求兼容的变量。。。
where extid in &list_a; 说是少括号。。。

使用道具

10
james_632 发表于 2012-5-3 15:10:23 |只看作者 |坛友微信交流群
james_632 发表于 2012-5-3 14:59
我得到的数据是 20062041,200620414......
当我where extid in (&list_a); 的时候报错说where子句运算符 ...
晕啊。()括号里面的是'20062041','20062021'字符串才可以 啊。。我的是数字啊。肿么办呢?

使用道具

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

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

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

GMT+8, 2024-4-20 11:44