2016-11-16 3 views
2

私は雑誌のサブスクリプションデータを扱っており、各顧客のサブスクリプションの開始日と終了日を含むデータセットをコンパイルしています。データセットには一意のID、サブスクリプションが開始された日を示すFirst_Date列、サブスクリプションが終了した日を示すLast_Date列が含まれます。SASで四半期ごとにアクティブなサブスクリプション数をカウントするにはどうすればよいですか?

この作業は、Q1から2000までのクォータごとにアクティブなサブスクリプションを持つ顧客の数を集計することです。 Quarter_Start(各四半期の最初の日)とQuarter_End(各四半期の最後の日)の2つの変数を持つデータセットをまとめました。アクティブなサブスクリプションの数を含むこのデータセットに3番目の列を追加したいと思います。私は無駄に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

パーフェクト - ありがとう! –

関連する問題