多くのユーザーに対して次のクエリを実行しています。
proc SQL;
select
username,
(select min(sub.date) from sample sub where sub.username = outer.username) Format=worddatx20. as firstDate,
date Format=worddatx20. AS betdate,
monotonic() as numberOfDaysActive
from sample as outer;
quit;
Monotonic() は、ユーザーに関係なく返される行の先頭からカウントするだけなので、numberOfDaysActive に正しい値を与えません。各ユーザーについて、ユーザーがデータベースに最初に登録された日がいつであるかを知る必要があり、その後、ユーザーが存在する日ごとに日数がカウントされます。
サンプル データは次のとおりです。
INPUT username $ amount date5 : ddmmyy8.;
DATALINES;
player1 90 12/11/08
player1 100 04/11/08
player2 120 07/11/08
player1 50 05/11/08
player1 30 05/11/08
player1 20 05/11/08
player2 10 09/11/08
player2 35 15/11/08
PROC PRINT; RUN;
「numberOfDaysActive」フィールドに必要なものは次のとおりです。
player1 90 12/11/08 3
player1 100 04/11/08 1
player2 120 07/11/08 1
player1 50 05/11/08 2
player1 30 05/11/08 2
player1 20 05/11/08 2
player2 10 09/11/08 2
player2 35 15/11/08 3
前もって感謝します。