我想知道每天过去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我也想做同样的事情。
答案 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
返回