我要求了解2013年和2014年有多少客户
以下是我使用的查询:
proc sql;
select count(distinct a.CUSTOMER_NUMBER)
from LOCFIL.CUST_DB_2013 as a
inner join LOCFIL.CUST_DB_2014 as b
on a.CUSTOMER_NUMBER = B.CUSTOMER_NUMBER
;quit;
这给了我这两年的客户数量
但我需要 1)客户仅从2013年开始,并在2014年继续 2)仅来自2014年的客户,他们也出席了2013年
为此我尝试了以下方式:
1)
proc sql;
select count(distinct a.CUSTOMER_NUMBER)
from LOCFIL.CUST_DB_2013 as a
left join LOCFIL.CUST_DB_2014 as b
on a.CUSTOMER_NUMBER = B.CUSTOMER_NUMBER
;quit;
2)
proc sql;
select count(distinct a.CUSTOMER_NUMBER)
from LOCFIL.CUST_DB_2014 as a
left join LOCFIL.CUST_DB_2013 as b
on a.CUSTOMER_NUMBER = B.CUSTOMER_NUMBER
;quit;
但数字甚至没有接近(左连接查询计数超过内连接计数,这让我担心)。 你能帮我解决一下这些数字吗?
答案 0 :(得分:2)
如果有人需要在这两年中出现,请使用内部join
:
proc sql;
select count(distinct a.CUSTOMER_NUMBER)
from LOCFIL.CUST_DB_2013 as a join
LOCFIL.CUST_DB_2014 as b
on a.CUSTOMER_NUMBER = B.CUSTOMER_NUMBER;
quit;
如果每年没有重复的客户,那么只需使用count(*)
。