我有一个简单的表:这里是一个值的样子的例子(去掉机密值之后)。
我需要做的是计算实例的数量——Date_Nbr值和下面的值之间的差值大于2。我可以想象创建第二个表,其中为每个Group和Person放置一个实例数的整数。
这在T-SQL中可能吗?我没有显示任何代码,因为我完全不知所措。
对于那些需要表格定义的人来说,它将是这样的:
Date_Nbr int not null,
Group varchar(5) not null,
Person varchar(5) not null
显示的值将存在于该表中(我们称之为Date_Seq)。
如果有任何想法,我将不胜感激。非常感谢。
Date_Nbr | Group | Person
1 C A
4 C A
5 C A
8 C A
10 C A
11 C A
13 C A
14 C A
15 C A
p.S.--
我在上面口头描述了它,但这是我希望实现的目标的视觉描述,其中"Count_Gaps"是在"Date_Nbr"序列中发现差异大于2的次数。
Group | Person | Count_Gaps
C A [integer value]
所有没有2个以上对应人员+组记录的记录。
SELECT
*
FROM <table> t1
LEFT join <table> t2 ON t1.group=t2.group AND t1.person=t2.person AND (t1.Date_nbr+1)=t2.Date_nbr
LEFT join <table> t3 ON t1.group=t3.group AND t1.person=t3.person AND (t1.Date_nbr+2)=t3.Date_nbr
WHERE t2.Date_nbr IS NULL
AND t3.Date_nbr IS NULL