我有几百万条记录,其中包含姓名和电话号码列表。我需要计算每个唯一电话号码的人数。电话号码与重复的名称和唯一名称相关联。因此,对于每个电话号码,我需要计算不同用户的数量。然后,这需要映射到商店列表。我尝试选择不同的手机/不同的手机,但这只给我一个分配比例。例如,如果有10个人使用三部手机,那么我的比例告诉我3个手机分布在10个人之间,但它并没有告诉我与手机相关的实际人数。任何人都可以帮我使用SAS代码来获得正确的计数,我知道确切地说有多少手机与同一个电话号码相关联。提前致谢。 -r
答案 0 :(得分:1)
如果您只想要具有相同电话号码的不同行数,请使用:
proc sql;
create table phone_number_counts as
select phonenumber, count(1) as count_users
from dset
group by phonenumber;
quit;
如果您想在电话号码中找到不同的名字,即if 555-123-4567 John H. 555-123-4567 John H. 555-123-4567 Mary Y
应该导致2,而不是3(第一个代码会产生3),然后使用count(distinct name)
代替count(1).
如果您需要其他内容,一些示例数据可能会有所帮助 - 例如,初始数据的示例和正确的最终数据集的示例将会有所帮助。
答案 1 :(得分:0)
我相信你正在寻找count(distinct name)
:
proc sql;
create table phone_number_counts as
select phonenumber,
count(*) as count_rows,
count(distinct name) as unique_names
from dset
group by phonenumber;
quit;