首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在日期范围内计数缺失日期序列

在日期范围内计数缺失日期序列
EN

Stack Overflow用户
提问于 2014-12-24 18:03:37
回答 1查看 53关注 0票数 0

我有下面的表,每个标识符都缺少日期,我想要确定错过了多少次序列。

对于标识符3,从下表中看,日期序列遗漏了三次。那是从

  1. 2024至12/04/204 -第一次
  2. 2024至12/12/204 -第二次
  3. 12/19/2024至12/22/204 -第三次

用于标识符4

  1. 2024至12/04/204 -第一次
  2. 2024至12/12/204 -第二次
  3. 12/19/2024至12/22/204 -第三次
  4. 12/27/2024至12/29/204 -第四次

用于标识符5

  1. 12/24/2024年是失踪日期

所以我期望的输出是

代码语言:javascript
复制
Identifier  count of missed seq dates

3              3
4              4
5              1

请使用这张桌子:

代码语言:javascript
复制
DECLARE @table TABLE (IDENTi VARCHAR(50),  StartDate DATETIME)

INSERT INTO @table VALUES ('3', '12/1/2024 ')
INSERT INTO @table VALUES ('3', '12/5/2024 ')
INSERT INTO @table VALUES ('3', '12/6/2024 ')
INSERT INTO @table VALUES ('3', '12/7/2024 ')
INSERT INTO @table VALUES ('3', '12/8/2024 ')
INSERT INTO @table VALUES ('3', '12/13/2024')
INSERT INTO @table VALUES ('3', '12/14/2024')
INSERT INTO @table VALUES ('3', '12/15/2024')
INSERT INTO @table VALUES ('3', '12/16/2024')
INSERT INTO @table VALUES ('3', '12/17/2024')
INSERT INTO @table VALUES ('3', '12/18/2024')
INSERT INTO @table VALUES ('3', '12/23/2024')
INSERT INTO @table VALUES ('3', '12/24/2024')
INSERT INTO @table VALUES ('3', '12/25/2024')
INSERT INTO @table VALUES ('3', '12/26/2024')
INSERT INTO @table VALUES ('3', '12/27/2024')
INSERT INTO @table VALUES ('3', '12/28/2024')
INSERT INTO @table VALUES ('3', '12/29/2024')
INSERT INTO @table VALUES ('3', '12/30/2024')
INSERT INTO @table VALUES ('4', '12/1/2024 ')
INSERT INTO @table VALUES ('4', '12/5/2024 ')
INSERT INTO @table VALUES ('4', '12/6/2024 ')
INSERT INTO @table VALUES ('4', '12/7/2024 ')
INSERT INTO @table VALUES ('4', '12/8/2024 ')
INSERT INTO @table VALUES ('4', '12/13/2024')
INSERT INTO @table VALUES ('4', '12/14/2024')
INSERT INTO @table VALUES ('4', '12/15/2024')
INSERT INTO @table VALUES ('4', '12/16/2024')
INSERT INTO @table VALUES ('4', '12/17/2024')
INSERT INTO @table VALUES ('4', '12/18/2024')
INSERT INTO @table VALUES ('4', '12/23/2024')
INSERT INTO @table VALUES ('4', '12/24/2024')
INSERT INTO @table VALUES ('4', '12/25/2024')
INSERT INTO @table VALUES ('4', '12/26/2024')
INSERT INTO @table VALUES ('4', '12/30/2024')
INSERT INTO @table VALUES ('5', '12/23/2024')
INSERT INTO @table VALUES ('5', '12/25/2024')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-24 18:36:50

下面是快速变体:

代码语言:javascript
复制
select IDENTi, count(*)
from tt as a
where
datediff(day, (select max(StartDate) from tt as b where a.IDENTi=b.IDENTi and a.StartDate>b.StartDate), a.StartDate)>1
group by IDENTi

http://sqlfiddle.com/#!6/00fda/11

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27640700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档