sql - SAS 类别划分频率

标签 sql sas

我有一个如下所示的数据集:

data have;
input county $ city $ state $ quantity;
cards;
A Springfield AZ 1000
A Townsville AZ 1000
A Selma AZ 1000
A Dunno AZ 1000
B City NC 2000
B Town NC 1000
B Village NC 2000
C Springfield AZ 2000
C Fargo AZ 1000
;
run;

我正在尝试计算每个州有多少个不同的县和城市,并总结每个州的数量。因此,最终目标是:

data want;
    input state $ freq_counties freq_cities sum_quantity;
cards;
AZ 2 6 7000
NC 1 3 5000
;
run;

这是我所拥有的,这几乎可以工作。 Springfield, AZ 出现了两次,这个 SQL 只计算一次(当然,这正是它应该做的)。但是,由于它们是不同的县,我希望将它们分开计算。我考虑过连接县和城市来创建第三个变量,但如果有更简单的方法,我宁愿不这样做。有想法吗?

proc sql;
create table test as
    select state
    ,count(distinct(county))
    ,count(distinct(city))
    ,sum(quantity)
    from have
    group by 1;
quit;

谢谢。

最佳答案

尝试:

proc sql;
create table test as
    select state
    ,count(distinct(cats(county,city)))
    ,count(distinct(city))
    ,sum(quantity)
    from have
    group by 1;

串联您的最佳选择..

关于sql - SAS 类别划分频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25124202/

相关文章:

php - 使用几个选项过滤 php mysql

sql - 如何在 UPDATE 语句中使用 LIKE 查询? *提供示例*

sql - U-SQL 构建错误,equijoin 有不同的类型

SAS:输入文本文件时指定换行符

sas - 在数据集的行内排名 [sas]

sql - 如何使用MS SQL Server Management Studio删除SQL数据库表中的前导空白空间

sql - 你如何记录你的数据库结构?

sql - SAS中的排序执行失败

r - 有没有一种方法可以根据以前的美元值(value)来矢量化计算利息美元

sas - 使用在 SAS/IML 中生成的向量作为宏变量