Sql server 选择一列中值更改前后的行,并与下一列中值的更改相关联
我有以下问题,我正在尝试使用SQLServer2008解决 该表有4列Sql server 选择一列中值更改前后的行,并与下一列中值的更改相关联,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有以下问题,我正在尝试使用SQLServer2008解决 该表有4列 1-标识符,如(a、a、a、b、b、c、c) 2-时间(以秒为单位) 3-值1(整数) 4-值2(浮动) 当按时间对每个标识符进行排序时,值1将在几行中重复。值1更改后,在几行之后(介于1到5秒之间)值2会发生相应的更改 1-检测值1的变化,并与值2的变化相对应 2-值1变化之间的秒差 我不能使用分区依据,因为值1和值2有重复出现的值 Identifier TimeStamp Value1 Value2 a
1-标识符,如(a、a、a、b、b、c、c)
2-时间(以秒为单位)
3-值1(整数)
4-值2(浮动) 当按时间对每个标识符进行排序时,值1将在几行中重复。值1更改后,在几行之后(介于1到5秒之间)值2会发生相应的更改 1-检测值1的变化,并与值2的变化相对应
2-值1变化之间的秒差 我不能使用分区依据,因为值1和值2有重复出现的值 Identifier TimeStamp Value1 Value2 a 12:10:01 2 0.98 a 12:10:02 2 0.98 a 12:10:03 3 0.98 a 12:10:05 2 0.98 a 12:10:06 3 0.50 a 12:10:09 2 0.98 a 12:10:12 2 0.50 a 12:10:13 2 0.98 b 12:10:10 2 0.98 b 12:10:11 4 0.98 b 12:10:12 5 0.98 b 12:10:12 5 0.80 b 12:10:12 5 1.20 标识符时间戳值1值2 a 12:10:01 20.98 a 12:10:0220.98 a 12:10:03 30.98 a 12:10:05 20.98 a 12:10:06 30.50 a 12:10:09 20.98 a 12:10:12 20.50 a 12:10:13 20.98 b 12:10:1020.98 b 12:10:11 40.98 b 12:10:125 0.98 b 12:10:125 0.80 b 12:10:125 1.20 我一直在尝试以下查询,但运行时间太长。对于值1的每一次更改,值2都有相应的更改。值2的变化可以在几秒钟内的任何时间发生。我想不出将这两个变化联系起来的方法 );具有值1更改为(
选择
(按时间戳排序)上的行号()为[RNum]
,标识符
,T1.[TimeStamp]作为[T1 TimeStamp]
,T2.【时间戳】为【T2时间戳】
,T1.[Value1]作为[T1\u值1]
,T2.[Value2]为[T2_值1] 从表T1
T1上的内部联接表T2。[标识符]=T2。[标识符]和T1.RNum=T2.RNum+1
其中T2.[Value1]T1.[Value1]
) 选择
VC1.标识符
,VC1。[T2时间戳]
,VC2。[T2时间戳]
,DATEDIFF(S,VC1。[T2时间戳],VC2。[T2时间戳])作为[更改之间的时间]
,VC1。[T1_值1]
,VC1。[T2_值1] 从值更改VC1
内部联接值更改VC1.Unit=VC2.Unit和VC1.RNum=VC2.RNum+1上的VC2
按VC1.RNUM 顺序,请考虑在格式化文本中添加示例表数据和预期结果。同时向我们展示您当前的查询尝试我已经编辑了我的原始帖子,其中包含了一个示例表和我的查询。请参阅参考的链接了解,如何提出一个完美的问题: