我想查询SQL Server(Azure)中“间隙和孤岛”问题中最后一个孤岛的大小。
说我有下表:
ID date status
500 2019-05-15 1
528 2019-05-16 0
538 2019-05-17 0
550 2019-05-18 1
580 2019-05-19 0
590 2019-05-20 0
ID是一个身份列 日期是日期列 状态为0或1。
我想知道状态已设置为0天。在这种情况下,今天是2019-05-20。
如何编写查询以将最后一个状态列的计数拉为0(即2)?
答案 0 :(得分:1)
您可以使用webscraping
查找最新记录,并使用它来计算status = 1
的最近记录。
status = 0
答案 1 :(得分:0)
假设您要对行进行计数(而不是使用日期算术),那么一种安全的方法是:
select count(*) as cnt
from t
where [date] > all (select [date] from t where status = 1);
即使没有1
,这也应该起作用。