2016-11-04 2 views
0

1日あたりのユーザー数をカウントして結果を加算するSQLクエリを作成しようとしています。結果を動的に追加する方法がわからないため、私は立ち往生しています。1日当たりのSQL件数を集計して翌日を合計します。

表:私は一日あたりの登録数をカウントするクエリを次している

UserId | CreateDate 
-------+---------------------------- 
    1 | 2016-06-23 13:59:24.0000000 
    2 | 2016-06-23 15:59:24.0000000 
    3 | 2016-06-24 05:59:24.0000000 
    ... 

SELECT 
    CONVERT(date, u.CreateDate) as [Date], Count(UserId) as [Count] 
FROM 
    User as u 
GROUP BY 
    CONVERT(date, u.CreateDate) 
ORDER BY 
    [Date] 

結果をどのように追加するかわかりません。私は、SQL Server 2008 R2に私のケースのための組み込み関数があることを願っています。または、テンポラリテーブルを作成する必要がありますか?

2016-06-23 | 2 
2016-06-24 | 2 + 1 = 3 
2016-06-25 | 3 + 4 = 7 

は、私は、クエリため、動的ソリューションが必要になります:私はこのような結果を受け取りたい、1日目と仮定すると、

は2件の登録があり、2日目は1件の登録があり、3日目は4件の登録がありますdate => Where CreateDateはxとyの別の制限があります。

おかげ Ruedi

答えて

2

実行中の合計を取得するためにsumウィンドウ関数を使用することができます。

select [Date],sum([Count]) over(order by [Date]) 
from (SELECT CONVERT(date, u.CreateDate) as [Date], Count(UserId) as [Count] 
     FROM User as u 
     GROUP BY CONVERT(date, u.CreateDate) 
    ) x 
order by 1 

where句を追加して、内部クエリの特定の日付範囲をフィルタリングします。

+0

[日付、u.CreateDate]を[日付]、...としてください。 –

+0

これは動作していますが、私はすでにSumを知っていましたが、ここでは魔法をやっていると思います。私には新しいものがあります。私はこの機能についてもっと深く考えなければなりません。ありがとうございました。私はすぐに私がそれを行うことができるように解決策としてあなたの答えにフラグを付けます。あなたは早すぎました:) –

関連する問題