全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1669 2
2019-03-18
请问下面这两个区别在哪里? 谢谢。


proc sql;
select rep, max(cost)
from work.one
group by rep;
quit;


proc sql;
select o.rep, (select max(cost) from work.one as i where i.rep=o.rep)
from work.one as o
group by rep;
quit;



二维码

扫码加我 拉你入群

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

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

全部回复
2019-3-21 13:57:09
猜代码的原意思是:第二个代码想把work.one里面的汇总按照o数据里面出现的rep进行读取。
如果上面的猜测是对的,那么代码的写法是有问题的。
按照程序逻辑我补上了完整的带结果的代码:

data one;

rep='A';cost=1;output;

rep='A';cost=10;output;

rep='B';cost=3;output;

rep='A';cost=5;output;

run;



data o;

rep='B';output;

run;


proc sql;

create table test1 as

select rep, max(cost)

from work.one

group by rep;

quit;



proc sql;

create table test2 as

select o.rep, (select max(cost) from work.one as i where i.rep=o.rep)

from work.one as o

group by rep;

quit;




如果希望按照o里面的rep统计work.one的结果:

proc sql;

create table test3 as

select rep, max(cost)

from work.one

where rep in (select rep from work.o)

group by rep;

quit;



二维码

扫码加我 拉你入群

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

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

2019-3-23 16:52:36
谢谢回复,感谢
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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