2016-11-16 69 views
2

我正在處理雜誌的訂閱數據,並編制了一個數據集,其中包含每位客戶訂閱的開始和結束日期。數據集包括一個唯一的ID,一個First_Date列和一個Last_Date列,這些列表示他們的訂閱開始的日期,Last_Date列表示他們的訂閱結束。如何計算SAS每季度活動訂閱的數量?

任務是從2000年第一季度到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()而不是count並且加上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

完美 - 謝謝! –