最近开发一个程序,需要用sql语句提取数据库中连续记录的一段变温数据。
模拟一个表t0,结构如下:
id site temp time
1 1 27 2020/5/1 08:01
2 1 26 2020/5/1 08:02
3 1 27 2020/5/1 11:40
4 2 60 2020/5/1 11:40
5 1 26 2020/5/1 11:41
6 2 59 2020/5/1 11:41
7 1 35 2020/5/1 11:42
8 2 50 2020/5/1 11:42
9 1 41 2020/5/1 11:43
10 2 44 2020/5/1 11:43
11 1 49 2020/5/1 11:44
12 2 38 2020/5/1 11:44
13 1 54 2020/5/1 11:45
14 2 32 2020/5/1 11:45
15 1 55 2020/5/1 11:46
16 2 26 2020/5/1 11:46
17 1 55 2020/5/1 11:47
18 2 17 2020/5/1 11:47
19 1 55 2020/5/1 11:48
20 2 18 2020/5/1 11:48
21 1 55 2020/5/1 11:49
22 2 9 2020/5/1 11:49
23 1 47 2020/5/1 11:50
24 2 -2 2020/5/1 11:50
25 1 30 2020/5/1 11:51
26 2 -8 2020/5/1 11:51
27 1 25 2020/5/1 11:52
28 2 -10 2020/5/1 11:52
29 2 -10 2020/5/1 11:53
30 2 -10 2020/5/1 11:54
数据具有的特点为:
1、数据在常温状态可能会因关机导致不连续。
2、多台设备的采集数据杂糅
3、数据采集的间隔时间为1分钟+N毫秒
4、数据过程为恒温-->升温-->高温保持-->降温-->低温保持-->升温,循环工作
现欲获取变温过程中的结果,生成一个表如下:
Newid site starttemp starttime stoptemp stoptime
1 1 26 2020/5/1 11:41 55 2020/5/1 11:46
2 2 60 2020/5/1 11:40 -10 2020/5/1 11:52
其中,startTemp和stopTemp为已知,主要希望获取变温开始的时间和变温结束的时间。
一点思路:
1、筛选范围在startTemp和stopTemp之间的**时间连续**的所有数据。
2、排除过程恒温的数据,即满足data1>data2,判断为存在升温过程
然后具体应该怎么实现,请教各位大佬。