小编Jef*_*ffW的帖子

Microsoft T-SQL计数连续记录

问题: 从每个人的最近一天开始计算每个人因为好的而获得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) …

t-sql sql-server count

4
推荐指数
1
解决办法
3139
查看次数

标签 统计

count ×1

sql-server ×1

t-sql ×1