【发布时间】:2020-11-10 02:05:27
【问题描述】:
我们的机器正在运行并创建开始和停止时间的运行日志,这些日志会渗入连续的报告中。每次运行包含 10 个时间戳(5 个开始和 5 个停止)。麻烦的是,第 (n-1) 次运行以开始日期结束(例如 Run_2 的第 11 行),而我需要的停止日期是第 n 次运行的一部分(Run_3 的第 10 行)。我需要将开始时间和停止时间分成不同的列。
源表的结构是这样的。
Name ROW RUN DATE_TS (this is a timestamp sorted desc)
A 1 Run_3 START1
A 2 Run_3 STOP1
A 3 Run_3 START2
A 4 Run_3 STOP2
A 5 Run_3 START3
A 6 Run_3 STOP3
A 7 Run_3 START4
A 8 Run_3 STOP4
A 9 Run_3 START5
A 10 Run_3 STOP5
A 11 Run_2 START1
A 12 Run_2 STOP1
A 13 Run_2 START2
A 14 Run_2 STOP2
A 15 Run_2 START3
A 16 Run_2 STOP3
A 17 Run_2 START4
A 18 Run_2 STOP4
A 19 Run_2 START5
A 20 Run_2 STOP5
A 21 Run_1 START1
A 22 Run_1 STOP1
A 23 Run_1 START2
A 24 Run_1 STOP2
A 25 Run_1 START3
A 26 Run_1 STOP3
A 27 Run_1 START4
A 28 Run_1 STOP4
A 29 Run_1 START5
A 30 Run_1 STOP5
Target(start和stop表示来自源表的日期对应的rowid)
Name Start Stop (replace row_id's with Actual timestamps)
A 3 2
5 4
7 6
9 8
11 10
13 12
15 14
17 16
19 18
21 20
23 22
25 24
27 26
29 28
非常感谢任何指导!提前谢谢你。
【问题讨论】:
-
您如何识别这些运行、启动和停止?实际数据会有所帮助。
标签: sql teradata datediff gaps-and-islands