2016-11-16 4 views
2

잡지 구독 데이터로 작업하고 있으며 각 고객 구독의 시작일과 종료일을 포함하는 데이터 세트를 컴파일했습니다. 데이터 세트에는 고유 한 ID, 구독이 시작된 날짜를 나타내는 First_Date 열 및 구독이 종료 된 날짜를 나타내는 Last_Date 열이 포함됩니다.SAS에서 분기당 활성 구독 수를 어떻게 계산합니까?

이 작업은 2000 년 1 분기에서 2015 사이의 분기마다 활성 구독 고객을 집계하는 작업입니다. Quarter_Start (각 분기의 첫 번째 날)와 Quarter_End (각 분기의 마지막 날)의 두 가지 변수가있는 데이터 집합을 정리했습니다. 활성 구독 수를 포함하는 세 번째 열을이 데이터 집합에 추가하려고합니다. proc SQL에서 아무런 쓸데없는 조건문을 사용하려고했습니다. 사전에

proc sql; 
    create table Want as 
      select a.Quarter_Start, 
        a.Quarter_End, 
        count(b.First_Date <= a.Quarter_Start & 
          b.Last_Date >= a.Quarter_end) as Customer_Count 
     from Int.Quarterly_Count as a, Int.Subscription_Dates as b; 
quit; 

감사 :

여기에 내가 작업 된 (잘못된) 코드입니다!

+0

몇 가지 샘플 데이터 세트를 제공해 주시겠습니까? – superfluous

답변

0

카운트 대신 SUM()을 사용하고 GROUP BY을 추가하십시오.
전체 분기 동안 활성 상태 인 고객을 계산해야합니다.

proc sql; 
    create table want as 
    select a.Quarter_Start 
     , a.Quarter_End 
     , sum(b.First_Date <= a.Quarter_Start 
      and b.Last_Date >= a.Quarter_end) as Customer_Count 
    from Int.Quarterly_Count as a 
     , Int.Subscription_Dates as b 
    group by 1,2 
    ; 
quit; 
+0

완벽한 - 감사합니다! –