【发布时间】:2019-10-14 10:46:11
【问题描述】:
我有一些数据(广义上)由以下字段组成:
Person TaskID Start_time End_time
Alpha 1 'Wed, 18 Oct 2017 10:10:03 GMT' 'Wed. 18 Oct 2017 10:10:36 GMT'
Alpha 2 'Wed, 18 Oct 2017 10:11:16 GMT' 'Wed, 18 Oct 2017 10:11:28 GMT'
Beta 1 'Wed, 18 Oct 2017 10:12:03 GMT' 'Wed, 18 Oct 2017 10:12:49 GMT'
Alpha 3 'Wed, 18 Oct 2017 10:12:03 GMT' 'Wed, 18 Oct 2017 10:13:13 GMT'
Gamma 1 'Fri, 27 Oct 2017 22:57:12 GMT' 'Sat, 28 Oct 2017 02:00:54 GMT'
Beta 2 'Wed, 18 Oct 2017 10:13:40 GMT' 'Wed, 18 Oct 2017 10:14:03 GMT'
对于这个数据,我需要的输出是这样的:
Person TaskID Time_between_attempts
Alpha 1 NULL ['Wed, 18 Oct 2017 10:10:03 GMT' - NULL]
Alpha 2 0:00:40 ['Wed, 18 Oct 2017 10:11:16 GMT' -'Wed, 18 Oct 2017 10:10:36 GMT']
Beta 1 NULL ['Wed, 18 Oct 2017 10:12:03 GMT' - NULL]
Alpha 3 0:00:35 ['Wed, 18 Oct 2017 10:12:03 GMT' -'Wed, 18 Oct 2017 10:11:28 GMT']
Gamma 1 NULL ['Fri, 27 Oct 2017 22:57:12 GMT' - NULL]
Beta 2 0:00:51 ['Wed, 18 Oct 2017 10:13:40 GMT' -'Wed, 18 Oct 2017 10:12:49 GMT']
我的要求如下:
一个。对于给定的人(Alpha、Beta 或 Gamma),变量“time_between_attempts”的第一次出现将为零/NULL - 在示例中我将其显示为 NULL。
b.第二次(以及随后的),同一个人出现将有一个非 NULL 或非零的“time_between_attempts”。这个变量是通过取上一个任务的结束时间和下一个任务的开始时间之间的差来计算的。
在这方面我有以下问题:
- 如何编写可以帮助我实现所需输出的 SQL 脚本?
请注意,TaskID 写成整数只是为了简化。在原始数据中,TaskID 很复杂,由不连续的字符串组成:
'q:1392763916495:441',
'q:1392763916495:436'
对此的任何建议将不胜感激。
【问题讨论】:
标签: mysql sql split strsplit date-difference