如果它们之间的差异超过15分钟,如何获得2条记录

时间:2012-09-26 18:50:04

标签: mysql sql

只有当这两个记录之间的时间是15分钟或更长时间时,我才能用sql找到第一个和第二个记录。

让我举一个例子,你可以看到我需要的东西:

ID| Time | Serial |   
 1| 10:45|   13   |  
 2| 11:00|   12   |  
 3| 11:17|   12   |  
 4| 11:00|   13   |  
 7| 11:05|   13   |  
 8| 11:07|   12   |  

我需要这样做:

ID| Time | Serial |

1| 10:45| 13 |
 的 2| 11:00| 12 |
 的 3| 11:17| 12 |
 的 4| 11:00| 13 |
 7| 11:05| 13 |
 8| 11:07| 12 |

输出如下:

Time 1 | Time 2 | Serial | Usage  
 10:45 | 11:00  | 13     | 15min
 11:00 | 11:17  | 12     | 17min

编辑: 我只需要使用相同的序列号同时比较2条记录。当然要通过所有记录。 我在时间列中有这种类型的数据:2012-09-06 16:53:05.581

1 个答案:

答案 0 :(得分:1)

也许是这些方面的东西:

SELECT
    time1.time,
    time2.time,
    time1.serial,
    (time2.time - time1.time) / 60 AS usage
FROM
    mytable time1,
    mytable time2
WHERE
    time1.id != time2.id
    AND time1.serial = time2.serial
    AND time2.time - time1.time > 60 * 15

我不熟悉MySQL中的时间处理 - 我假设它们可以被减去,并且差异在几秒钟内。如果需要显式转换,请在此处使用函数。

附录:这应该处理成对的记录条目。但是如果有三个,它们之间有15分钟,那么这将产生1-2,2-3和1-3,所以你可能需要稍微修改它。