问题: 从每个人的最近一天开始计算每个人因为好的而获得0分的连续天数.
要使用的示例数据:
Date Name Points 2010-05-07 Jane 0 2010-05-06 Jane 1 2010-05-07 John 0 2010-05-06 John 0 2010-05-05 John 0 2010-05-04 John 0 2010-05-03 John 1 2010-05-02 John 1 2010-05-01 John 0
预期答案:
Jane在5月7日表现糟糕,但前一天表现不错.所以Jane最近才连续第一天不好.约翰在5/7,5/6,5/5和5/4再次表现糟糕.5/3他表现不错.约翰连续四天都很糟糕.
用于创建样本数据的代码:
IF OBJECT_ID('tempdb..#z') IS NOT NULL BEGIN DROP TABLE #z END
select getdate() as Date,'John' as Name,0 as Points into #z
insert into #z values(getdate()-1,'John',0)
insert into #z values(getdate()-2,'John',0)
insert into #z values(getdate()-3,'John',0)
insert into #z values(getdate()-4,'John',1)
insert into #z values(getdate(),'Jane',0)
insert into #z values(getdate()-1,'Jane',1) …