SQL Server:获取每天过去7天的计数

时间:2016-10-28 20:07:38

标签: sql sql-server count

我想知道每天过去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。那么对于5-30我也想做同样的事情。

1 个答案:

答案 0 :(得分:2)

如果2012+您可以将Window函数与前面的子句

一起使用
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