楼主: awdrgyfree
3187 14

[原创博文] 一列数 几段平均数 求出减去对应平均数后的数 [推广有奖]

  • 0关注
  • 0粉丝

学前班

90%

还不是VIP/贵宾

-

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

楼主
awdrgyfree 发表于 2012-5-5 00:01:51 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
以下数列:ID    year   code  size

001 1998 A 0.1
001 1999 A 0.3
001 2000 A 0.5
001 2001 A 0.6
001 2002 A 0.3
001 2003 A 0.2
002 1998 B 0.1
002 1999 B 0.3
002 2000 B 0.5
002 2001 B 0.6
002 2002 B 0.3
002 2003 B 0.2

003 1998 B 0.1
003 1999 B 0.3
003 2000 B 0.5
003 2001 B 0.6
003 2002 B 0.3
003 2003 B 0.2

首先要算出每个每个行业(code)对应每一年的size的平均数,然后在得出size减去对应的平均数,这样的程序应该怎样写?

跪谢啊,毕业论文快死掉了。。。
二维码

扫码加我 拉你入群

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

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

关键词:平均数 size code year 毕业论文 毕业论文 平均数 程序 行业

回帖推荐

mymine 发表于2楼  查看完整内容

proc sql; create table temp1 as select *,mean(size) as size_mean from temp group by code; quit; data temp1; set temp1; xx=size-size_mean; run;

本帖被以下文库推荐

沙发
mymine 发表于 2012-5-5 12:43:16
proc sql;
create table temp1 as
select *,mean(size) as size_mean
from temp group by code;
quit;
data temp1;
set temp1;
xx=size-size_mean;
run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

藤椅
sunset1986 发表于 2012-5-6 17:57:20
mymine 发表于 2012-5-5 12:43
proc sql;
create table temp1 as
select *,mean(size) as size_mean
赞!!!!!
An honest tale speeds best being plainly told.
Cheers!

板凳
pl172231 发表于 2012-5-7 10:46:54
mymine 发表于 2012-5-5 12:43
proc sql;
create table temp1 as
select *,mean(size) as size_mean
代码有误哦,既然用了集合函数,前面不能再有没出现在group by中的变量哦
应为
proc sql;
create table temp1 as select year , code , mean(size) as m from temp group by year ,code ;
quit;

报纸
pl172231 发表于 2012-5-7 10:55:01
还是帮你写完吧,前面已经求出了不同行业在不同年的size的均数m,现在将你表中的size变量更新为size-m即与均数的差;代码如下(注意temp为我默认的你这张表的名称)
proc sql ;
update temp set size=size-(select m from temp1 where temp.year=temp1.year and temp.code=temp1.code);
quit;

地板
mymine 发表于 2012-5-7 11:33:07
pl172231 发表于 2012-5-7 10:46
代码有误哦,既然用了集合函数,前面不能再有没出现在group by中的变量哦
应为
proc sql;
大侠,你试验一下就知道谁对谁错了
“前面不能再有没出现在group by中的变量”哪儿说的呀?

7
pl172231 发表于 2012-5-7 11:46:34
GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想

你用了GROUP BY 按  ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何显示呢,比如下面所示

8
pl172231 发表于 2012-5-7 11:48:44
mymine 发表于 2012-5-7 11:33
大侠,你试验一下就知道谁对谁错了
“前面不能再有没出现在group by中的变量”哪儿说的呀?
GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想

你用了GROUP BY 按某个字段分组,那其他字段内容不同,变成一对多又改如何显示呢,比如下面所示
我学过数据库的,这是很基础的知识啊

9
mymine 发表于 2012-5-7 11:51:49
人家本来就要求一对多的结果,这样才能实现size-mean(size)
就是要每行都把分类的均值都记录下来

10
pl172231 发表于 2012-5-7 11:52:57
mymine 发表于 2012-5-7 11:51
人家本来就要求一对多的结果,这样才能实现size-mean(size)
就是要每行都把分类的均值都记录下来
你那个语句是执行不了的

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

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