全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3236 3
2010-10-29
请问各位前辈,小弟我现在用sql合并二档,但一直有问题产生,不知道有没有前辈能帮我看看我的code是什么地方出了问题,拜托各位前辈了!
data book1;
infile 'e:\ddd\012-3.txt' missover LRECL=930 PAD;
input no $ 1-5 time 6-11 exection 12 buy 13 sell 14 date 15-22 ep 12-27 .2 eq 28-33 bid1 34-39 .2 ask1 40-45 .2 bidq1 46-51 bid2 52-57 .2 bidq2 58-63 bid3 64-69 .2 bidq3 70-75 bid4 76-81 .2 bidq4 82-87 bid5 88-93 .2 bidq5 94-99 askq1 100-105 ask2 106-111 .2 askq2 112-117 ask3 118-123 .2 askq3 124-129 ask4 130-135 .2 askq4 136-141 ask5 142-147 .2 askq5 148-153
spread 154-158 .2 bid1t2 159-164 .2 bidq1t2 165-170 bid2t2 171-176 .2 bidq2t2 177-182 bid3t2 183-188 .2 bidq3t2 189-194 bid4t2 195-200 .2 bidq4t2 201-206 bid5t2 207-212 .2 bidq5t2 213-218 ask1t2 219-224 .2 askq1t2 225-230 ask2t2 231-236 .2 askq2t2 237-242 ask3t2 243-248 .2 askq3t2 249-254 ask4t2 255-260 .2 askq4t2 261-266 ask5t2 267-272 .2 askq5t2 273-278
boa0 279-285 bpoa0 286-291 .2 boa1 292-298 bpoa1 299-304 .2 boa2 305-311 bpoa2 312-317 .2 boa3 318-324 bpoa3 325-330 .2 boa4 331-337 bpoa4 338-343 .2 boa4p 344-350 boa4n 351-357 boa5 358-364 bpoa5 365-370 .2 boa5p 371-377 boa5n 378-384 boa6 385-391 bpoa6 392-397 .2 boa6p 398-404 boa6n 405-411 boa7 412-418 bpoa7 419-424 .2 boa7p 425-431 boa7n 432-438 boa8 439-445 bpoa8 446-451 .2 boa8p 452-458 boa8n 459-465 boa9 466-472 bpoa9 473-478 .2
maoab 479-481 mpaoab 482-484 mmoab 485-486 mpmoab 487-494 .4
soa0 495-501 spoa0 502-507 .2 soa1 508-514 spoa1 515-520 .2 soa2 521-527 spoa2 528-533 .2 soa3 534-540 spoa3 541-546 .2 soa4 547-553 spoa4 554-559 .2 soa4p 560-566 soa4n 567-573 soa5 574-580 spoa5 581-586 .2 soa5p 587-593 soa5n 594-600
soa6 601-607 spoa6 608-613 .2 soa6p 614-620 soa6n 621-627 soa7 628-634 spoa7 635-640 .2 soa7p 641-647 soa7n 648-654
soa8 655-661 spoa8 662-667 .2 soa8p 668-674 soa8n 675-681 soa9 682-688 spoa9 689-694 .2
maoas 709-711 mmoas 712-714 mpmoas 715-720 .2 wspread 721-726 .4 wk 727-732 .4 w1spread 733-738 .4 w1k 739-744 .4 midquote 745-750 .2 waittime 751-754 timeframe1 755-756 timeframe2 757-758 ctimeframe1 759-760 ctimeframe2 761-762 return 763-771 .6 deviation60 772-780 .6 deviation30 781-789 .6 deviation20 790-798 .6 monentum10 799-807 .6 monentum20 808-816 .6 ASCs 817-824 .4 NECs 825-832 .4 ASCb 833-840 .4 NECb 841-848 .4 kb 849-856 .4 ks 857-864 .4 w1ASCs 865-872 .4 w2NECs 873-880 .4 w3ASCb 881-888 .4 w4NECb 889-896 .4 lagw1ASCs 897-904 .4 lagw2NECs 905-912 .4 lagw3ASCb 913-920 .4 lagw4NECb 921-928 .4
;

run;


data book2;
infile 'e:\ddd\1029.txt' missover LRECL=260 PAD;
input sn $1-6 ooq 7-14 oop 15-20 type $21 odate
22-29 otime 30-37 eeq 38-45 eep 46-51 edate
52-59 etime 60-65 bs $66 or $67 sax $68 age 69-70 sax1 $71 ctype $72 mtype $73 tra $74 tel $75 cell $76 bir $77-84 pi $85 wealth 86-93
max 94-101 day_trader $102
zero 103 da 104 sum 105-112 no1 113-114 no2 115-118 no3 119-122 maxno 123-126 sn1 $ 127-131
date1 132-139 bata 140-145 .4 f_ration 146-150 .2 out_v 151-160 dr 161-167 .4 wr 168-174 .4 mr 175-181 .4 qr 182-187 .4 yr 188-194 .4 mgr 195-199 .2 vr 200-203 .2 mvr 204-208 .2
turn 209-214 .2 mv 215-222 equity 223-232 opp 233-238 .2 hp 239-244 .2 lp 245-250 .2 cp 251-256 .2 limit $ 257;

run;

proc sql;
create table book8 as
select
book2.*, book1.*
FROM book2 full join book1 on (book2.sn=book1.no) and (book2.edate=book1.date) and (book2.etime=book1.time) ;
QUIT;


结果出现(有时候会出现不同的错语显示)
error:Insufficient memory.



二维码

扫码加我 拉你入群

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

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

全部回复
2010-10-29 20:48:42
what's
二维码

扫码加我 拉你入群

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

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

2010-10-30 01:19:48
我觉得这很可能是你计算机的内存不够的问题,不知道你的两个数据文件012-3.txt 和1029.txt每个都有多少观测值?但从你的程序里,我明显的看到,在这两个文件里,每个文件里的变量都很多,这不禁让我产生这么个疑问:你在用SQL做互配时,有必要对这么多的变量都进行互配吗?我想这大概就是造成你在用SQL做互配时,用了不该需用的内存或是根本就浪费了很多的内存。所以,我建议:首先减少每个文件里的需要互配的变量,或是先找几个(3-5)最经典的变量,先试着互配一下,成功之后,在加入其他或稍多的变量互配。这样,肯定会减少很多不必要的内存需要!也可能就不会出现“error:Insufficient memory”了!
二维码

扫码加我 拉你入群

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

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

2010-10-30 15:24:20
sql的join 合并起来会产生大量的数据行,每一行匹配另一本书的所有行,然后再匹配再另外一本书的匹配行,内存不够似乎情有可原。算法可能需要修改下了??
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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