全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2150 4
2012-07-25
proc sql;
create table teen as
select name as fname,age
from sashelp.class
where age>12;
quit;

*第一种方法;
proc sql; select * from (select age,count(age) as many        from teen       group by age) having many=max(many);quit;

*第二种方法;
proc sql; select age,count(age) as many from teen group by age having many=max(many);quit;

*SAS 报错 ERROR: 不支持以此种方式嵌套的汇总函数。;

请问各位大侠SASsql 嵌套的具体过程是怎么样的哦,什么时候是合法的,什么时候不能执行?谢谢的啦
二维码

扫码加我 拉你入群

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

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

全部回复
2012-7-25 15:23:06
我试验的SAS 9.1.3,你的第一种好像没有问题呀
二维码

扫码加我 拉你入群

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

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

2012-7-25 19:47:58
第二种有问题,我不知道错在哪里。。
二维码

扫码加我 拉你入群

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

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

2012-7-26 00:31:44
proc sql; select age,count(age) as many from teen group by age having many=max(many);quit 你这里的having many=max(many) 应该是出错的原因。 many 在这里还是一个invalid column name, 是不存在的。sql 是先执行from, group by, having. 在执行 select ,所以在having 的时候 还没有many 这个column, 只可以用 count(*)
二维码

扫码加我 拉你入群

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

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

2012-9-13 17:44:36
哦,select 语句是最后执行的,所以用这个嵌套proc sql; select * from (select age,count(age) as many        from teen       group by age) having many=max(many);quit;时先执行子语句产生 many 变量,就可以使用HAVING 里的了,谢谢了大侠了哦
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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