SAS:总结到不同的水平

时间:2013-12-11 15:00:33

标签: sql sas

我有一个包含多个heirachical变量的数据集:Region State County City District

对于上述变量的每个组合,存在一系列将被计数,求和等的变量。这很简单,使用基本的proc sql,除了输出文件需要在每个级别包含一行总计。因此,如果特定城市有4个区,则会有5行,例如。

生成第五行的一种方法是这样的:

proc sql;
create table district_sum as
select Region, State, County, City, 'All Districts' as District, bla, bla, bla...

这会给我在城市级别的总数,然后我可以为每个级别重复此过程。但我认为必须有一个更好的方法来做到这一点,而不是一系列类似的SQL步骤。

3 个答案:

答案 0 :(得分:1)

尝试PROC SUMMARY。

proc summary data=foo;
class region state county city;
var bar;
output out=outData sum=sum;
run;

答案 1 :(得分:0)

您可以使用PROC TABULATE轻松生成包含各种嵌套变量和小计的报告:

PROC TABULATE data=yourdata;
   CLASS Region State County City District;
   VAR Sales;
   TABLE Region*(State*(County*(City*(District ALL) ALL) ALL) ALL) ALL,
        Sales*sum;
RUN; 

答案 2 :(得分:0)

要以Dmitry Shopin的答案为基础,如果使用的是SAS EG,则可以使用汇总表向导。轻松播放并查看各个级别。

然后,您还可以从中获取源代码以派生Proc Tabulate。