全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1460 1
2010-09-30
不好意思,又来请教各位前辈,之前我有问过计算总合的问题,也得到了解答,但我将它代入我的例子中却出现了问题,结果和我想得到的答案不符(想得到count1,但却得到count),再次请教各位前辈,我的代码是哪边出错了吗?
其问题说明为: 要将有相同日期、ID和行动的值全部加总起来,所以说在相同odateidbs的观测值其count皆相同(皆为其个别eq相加总),但若没有同odateidbs的观测值的话(话句话说,当天只有本身一笔时),就不作相加的动作,故为missing(当然一开始是没有count1 count 这一项的,因为这是我最后想求得的结果) ,再次请求各位前辈的帮助!


资料如下:
sn odate eq ep etime bs id count1 count
1101 20090518 2000 33.2 93320 B 1  55000
1101 20090518 2000 33.25 91910 S 1 4000 61000
1101 20090518 2000 33.2 93705 S 1 4000 61000
1101 20090518 1000 33.25 120434 S 2  1000
1101 20090522    B 1  110000
1101 20090522 5000 33.2 122911 B 1 25000 110000
1101 20090522 2000 33.25 123001 B 1 25000 110000
1101 20090522 3000 33.2 123051 B 1 25000 110000
1101 20090522 5000 32.8 91643 B 1 25000 110000
1101 20090522 5000 32.85 92553 B 1 25000 110000
1101 20090522 5000 32.8 93553 B 1 25000 110000
1101 20090522 15000 33.4 121002 S 1 20000 115000
1101 20090522 5000 33.2 131346 S 1 20000 115000
1102 20090518 2000 37.3 111959 S 1  61000
1102 20090518 5000 36.5 90230 S 6  20000
1103 20090526 3000 18.35 101321 B 9  9000
1103 20090526 3000 18.8 120346 S 9  3000
1103 20091002    B 13  20000
1103 20091002 20000 16.85 131048 B 13  20000

代码如下:
proc
sql;

create
table out2 as

select
a.*, b.count

from book5 a left join

(
select odate,bir,bs,count(bir) as count, sum(eq) as count

from book5

group
by odate, bir, bs


having count gt
1
) b


on a.odate=b.odate and a.bir=b.bir and a.bs=b.bs

order
by odate, etime,sn;
quit;
二维码

扫码加我 拉你入群

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

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

全部回复
2010-9-30 09:16:24
楼主帖的代码貌似有问题啊,错误多多啊
稍微改了下,添加字段sum,貌似和count1一致了
复制代码
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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