1
我对SQL相当缺乏经验,但我努力尝试将我的代码压缩到一个查询中,以便它更高效。下面是一个更复杂的问题,我有一个简单的例子。我在创建摘要组和变量的语法方面遇到问题。在我的情况下,数据存放在几个不同的表中,但连接对我来说不是问题,所以我只在这里创建了一个表。SQL创建新变量
这是我拥有的数据:
Name Class Wk Score ExCred X
Joe A 1 35 ? 3
Hal A 1 50 5 4
Sal A 1 45 ? 3
Kim B 1 30 5 6
Cal B 1 40 ? 6
Joe A 2 50 ? 2
Hal A 2 40 ? 3
Sal A 2 40 ? 4
Kim B 2 40 5 5
Cal B 2 40 ? 4
我想创建看起来像这样的表:
Class Wk Avg_Score Sum_X
A 1 45 10
B 1 37.5 12
A 2 43.3 9
B 2 42.5 9
因此,该数据是由类和周总结。 avg_score是每个学生总和的平均值,'score'和'ExCred'。 Sum_X只是每个类的X的总和。
我已经通过使用多个proc means语句在SAS SQL中取得了成功,但这很笨拙,似乎需要很长时间。必须有一个更优雅的方式来做到这一点。我知道这可能涉及集团的声明.....帮助?
谢谢。 Pyll
由于我的数据是在多个表中,我不得不使用连接来创建一个表,比如在使用proc方法之前创建一个表,然后在之后实际加入更多的东西。这是一团糟。所以,现在我试图在SQL(而不是SAS SQL)中完成它。上面的代码没有将缺少的值作为零处理,这正是我想要的。 – pyll
我想我用“zeroifnull”函数对它进行了排序。 – pyll