SAS获得具有相似列内容的组

时间:2014-09-17 11:10:24

标签: sas

我试图让所有只从我的数据中购买过一种产品的客户。

E.g我这里有一个数据表。

CustomerID  purchasedProduct
1            k
1            k
1            k
2            n
2            k
2            k
3            k
3            k
3            k

我希望得到所有只购买过k产品的客户。在这个例子中,我喜欢从customerID 1和3获取所有数据,因为customerID 2购买了n产品。 我该怎么办?

1 个答案:

答案 0 :(得分:1)

PROC SQL非常适合此类任务...使用子查询让客户购买单个产品,然后使用该列表对主数据集进行子集化。

proc sql ;
  select *
  from maindata
  where CustomerID in(select CustomerID
                      from maindata
                      group by CustomerID
                      having count(distinct(PurchasedProduct)) = 1)
    and PurchasedProduct = 'k'
  ;
quit ;