SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 597|回复: 1
打印 上一主题 下一主题

求教 sas hash 在分类数据中的用法

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-2-21 11:33:09 | 只看该作者

求教 sas hash 在分类数据中的用法

我现在有张想放进hash 里的表,他是个分类表,就是在某一类别中,key才是唯一的。
由于hash表联接时key要唯一,怎样可以不用把此表按照类别拆分成一个一个小表后再连
因为我的表很大,类别比较多,用sql或拆分后不是很慢就是生成很多张表。

比如 表A
kind     id
a          1
a          2
b          1
b          3
c          2
c          3

表B
id     amt
1       50
2       40
2       20
3       30


我想要得到kind(类别)   a   b   c 类下所有id 的总amt额。。想用hash 做  求教高手
十分感谢。。。sql   join  再group by实在太慢了。。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-2-22 01:14:25 | 只看该作者

Re: 求教 sas hash 在分类数据中的用法

既然你敢把A表放进Hash, 那么,你的A表并不大,问题出在B表。
先group B表然后再join, 然后group A.
当然了,如果你的B表真的到了T级,那就另当别论了,采用hash或什么的。不过不管怎么样,都是先从B下手。
[code:1dlw7rx8]
select kind
        , sum(amt) as amt
from A
      , (select id
                 , sum(AMT) as amt
         from B
         group by id
         )  B
where a.ID=b.ID
group by kind
;
[/code:1dlw7rx8]
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-12 19:07 , Processed in 0.076214 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表