users
アカウントが作成されたときに、TIMESTAMP を格納するテーブルがあります。特定の期間にサインアップした新しいユーザーを週ごと (月曜日から) にグループ化して表示するクエリを作成しようとしています。ディレクターが入って、レポートの日付範囲、つまり 2 つの変数を選択します。選択した 2 つの変数の日付の間にサインアップしたすべての新規ユーザーを、週 (週の始まりの月曜日) ごとにグループ化して表示する結果が表示されます。
変数: @StartRangeSelectDate @EndRangeSelectDate
ユーザー表:
| id | TIMESTAMP
----------------------------------------------
| 1 | 2013-09-02
| 2 | 2013-09-08
| 3 | 2013-09-12
| 4 | 2013-09-27
結果は次のようになります (選択した開始日が 2013-09-01 のようなもので、終了日が 2013-09-29 の場合:
| YearWeek | # of New Users
----------------------------------------------
| 2013 36 | 2
| 2013 37 | 1
| 2013 38 | 0
| 2013 39 | 1
日付範囲内の合計新規ユーザーを表示するクエリですが、日付範囲内の週ごとにはまだグループ化されていません:
SELECT COUNT(user.id) AS '# of New Users in Date Range'
FROM user
WHERE user.Inactive = 0
AND user.TimeStamp BETWEEN @StartRangeSelectDate AND @EndRangeSelectDate;