全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1346 3
2017-02-19
悬赏 15 个论坛币 已解决
1.JPG
2.JPG
3.JPG

好吧,我又来问问题了....
原始数据是最上面的两个,然后我已经导入数据了....
然后如果使用proc sql命令,我该怎么进行归类啊?还是要在infile进行新创建一个新的variable?
问题是这样的:
如果说,把zip42101,42103,42104设定为BG区域,剩下的邮编都是非BG区域,计算出BG 区域和非BG区域的 financial aid的总和

第二个问题:要用nested queries 把那些financial aid 高于平均数的学生

然后还有一些代码的小问题
4.JPG

上面这个代码是可以正确运行的,但是一开始我把
having 和group by 的命令上下颠倒了,然后就一直报错....然后按照上面的顺序就可以正常运行了,这个是为什么啊?
还有group by year,或者group by major为什么两个出来的结果是不一样的啊?
原理是什么啊....

谢谢谢谢谢~~~~~~~~~~·

最佳答案

yingj7093 查看完整内容

第二个,按BG分组筛选。 proc sql; select a.studentid,a.finaaid,avg(a.finaaid) as avg_finaaid,b.zip, case when b.zip in (42101,42103,42104) then "BG" else "NOTBG" end as new_zig from finaid as a left join zip as b on a.studentid=b.id group by new_zig having a.finaaid > (calculated avg_finaaid);quit;
二维码

扫码加我 拉你入群

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

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

全部回复
2017-2-19 11:30:58
第二个,按BG分组筛选。
proc sql;
select a.studentid,a.finaaid,avg(a.finaaid) as avg_finaaid,b.zip,
case when b.zip in (42101,42103,42104) then "BG"
else "NOTBG" end as new_zig
from finaid as a
left join zip as b on a.studentid=b.id
group by new_zig
having a.finaaid > (calculated avg_finaaid);quit;
二维码

扫码加我 拉你入群

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

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

2017-2-22 04:02:47
proc sql;
select distinct sum(Finaaid) as Total format=dollar12.2,
case when zip in(42101,42103,42104)
then 'BG'
else 'Out BG'
end as Area
from zip p inner join finaid r
on p.id = r.studentid
group by area
order by Total;


我自己解决了~~~~~~~~~~~~~·
二维码

扫码加我 拉你入群

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

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

2017-2-24 15:56:26
第一个问题。
proc sql;
select a.studentid,a.finaaid,sum(a.finaaid) as sum_finaaid,b.zip,
case when b.zip in (42101,42103,42104) then "BG"
else "NOTBG" end as new_zig
from finaid as a
left join zip as b on a.studentid=b.id
group by new_zig;quit;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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