2016-10-28 13 views
-1

毎日過去7日間のカウントを取得します。だから、SQL Server:毎日過去7日間のカウントを取得します

updateDate Type  ResultOfSqlStatement 
2016-05-31 Thing1   5 
2016-05-31 Thing2 
2016-05-31 Thing3 
2016-05-30 Thing1 
2016-05-29 Thing2 
2016-05-28 Thing1 
2016-05-28 Thing3 
2016-05-27 Thing1 
2016-05-26 Thing1 

私はさらにバックまたがるより多くの記録を持っているでしょう。私は毎日の最後の7日間のタイプのすべての発生のカウントを取得したいと思います。だから、

2016-5-31 

のために私は結果列が5-31に至るまでの過去7日間の合計を持っているしたいと思います。それから私は同じことをしたいと思います。

+0

あなたの予想結果は不明であるとあなたは、ウィンドウ関数を使用することができ2012+場合。あなたは2016年5月31日に5にどのように到着したか説明できますか? –

+0

過去7日間に5つのものが1つあるので – Kalimantan

+0

もっと明瞭にするために7日間を追加できます – Kalimantan

答えて

2

前の

Declare @YourTable table (updateDate date,Type varchar(25)) 
Insert Into @YourTable values 
('2016-05-31','Thing1'), 
('2016-05-31','Thing2'), 
('2016-05-31','Thing3'), 
('2016-05-30','Thing1'), 
('2016-05-29','Thing2'), 
('2016-05-28','Thing1'), 
('2016-05-28','Thing3'), 
('2016-05-27','Thing1'), 
('2016-05-26','Thing1') 

Select *,ThingCount=sum(1) over(Partition By Type order by updateDate rows between 7 preceding and current row) 
From @YourTable 

戻り

enter image description here

+0

良い1つのジョン..私はこの回答を時間内に思い付くことができませんでした。 –

+0

@vkpあなたはちょうど気を散らされた(Scoobie Dooを見ているのですか?) BTWはUpVoteに感謝します。あなたは19分を残して、その日のために私を200以上押した。 –

関連する問題