楼主: xiaobai922
2202 4

[原创博文] 一个SQL嵌套的问题 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

33%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
2.8500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
152 点
帖子
56
精华
0
在线时间
208 小时
注册时间
2009-1-18
最后登录
2023-3-25

楼主
xiaobai922 发表于 2012-7-25 10:00:28 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
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 嵌套的具体过程是怎么样的哦,什么时候是合法的,什么时候不能执行?谢谢的啦
二维码

扫码加我 拉你入群

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

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

关键词:sql proc sql SASHELP Select having

沙发
mymine 发表于 2012-7-25 15:23:06
我试验的SAS 9.1.3,你的第一种好像没有问题呀

藤椅
xiaobai922 发表于 2012-7-25 19:47:58
第二种有问题,我不知道错在哪里。。

板凳
amyhxx 发表于 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(*)

报纸
xiaobai922 发表于 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 里的了,谢谢了大侠了哦

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 05:15