我有一个具有以下结构的表
ID ActivityTime Status
19 2013-08-23 14:52 1
19 2013-08-23 14:50 1
19 2013-08-23 14:45 2
19 2013-08-23 14:35 2
19 2013-08-23 14:32 1
19 2013-08-23 14:30 1
19 2013-08-23 14:25 2
19 2013-08-23 14:22 2
53 2013-08-23 14:59 1
53 2013-08-23 14:56 1
53 2013-08-23 14:57 1
53 2013-08-23 14:52 2
53 2013-08-23 14:50 2
53 2013-08-23 14:49 2
53 2013-08-23 14:18 2
53 2013-08-23 14:30 1
Run Code Online (Sandbox Code Playgroud)
我想计算每个ID与状态2的总时间差.例如,ID 19保持在状态2,从14:35到14:50(15分钟),然后是14:22到14:30(8分钟).因此状态2中的总ID 19为23分钟.(在这两种情况下,我都考虑了状态2到状态1的最短时间) 问题是 我如何仅在下一行中它们不同的状态之间包含差异.
例如,我将排除表中状态为1的第一条记录,然后选择第二行.状态2的情况也是如此.我会选择最小时间,计算它们的差异,然后将它们添加到每个通道的多组状态.
我尝试过使用CURSOR,但似乎无法使其正常工作.我也非常有信心,在获得所有数据然后循环之后,我可以在C#中实现这一点.但我只是想知道是否有一种直接的方式来获取没有循环的信息.我还创建了一个SQL 数据 …