Mysql 如何在每条记录之间的间隔不超过5分钟的曲目中选择记录?
我有很多GPS设备的记录,我需要在地图上显示路线。当记录之间的时间不超过5分钟时,记录组合路线 假设我的数据库看起来像:Mysql 如何在每条记录之间的间隔不超过5分钟的曲目中选择记录?,mysql,sql,database,Mysql,Sql,Database,我有很多GPS设备的记录,我需要在地图上显示路线。当记录之间的时间不超过5分钟时,记录组合路线 假设我的数据库看起来像: id date ------- --------------------- 1 2013-01-10 11:00:00.0 2 2013-01-10 11:01:15.0 3 2013-01-10 11:02:15.0 4 2013-01-10 11:03:15.0 5 2013-01-10
id date
------- ---------------------
1 2013-01-10 11:00:00.0
2 2013-01-10 11:01:15.0
3 2013-01-10 11:02:15.0
4 2013-01-10 11:03:15.0
5 2013-01-10 11:04:45.0
6 2013-01-10 11:15:00.0
7 2013-01-10 12:00:00.0
8 2013-01-10 12:00:50.0
在这种情况下,记录1-5和7-8需要形成一条路线
我正试图为此编写一个查询,但我被卡住了。我设法在数据库之后执行该操作,但这是您不希望看到的(您必须检索所有记录等)
有人对此有解决方案吗?您只需将每个条目与其后续条目进行比较,即可获得各个分段
SELECT
f.ID AS from_ID,
t.ID AS to_ID
FROM
GPSTable AS f
JOIN GPSTable AS t
ON f.ID = t.ID-1
WHERE
TIMESTAMPDIFF(SECOND, f.Date, t.Date) < 300
;
选择
f、 从(u ID)开始的ID,,
t、 身份证
从…起
gpf稳定
加入gpt
在f.ID=t.ID-1上
哪里
时间差(秒,f日期,t日期)<300
;
如果存在一个条目(A,B)和另一个条目(B,C),您知道您有一个来自(A->B->C)的路径
下一步是收集所有这些路径段。这可以通过递归查询完成,但我不熟悉mySQL。@GeorgeBoot:感谢您更正了如何计算mySQL中两个日期时间值之间的差异。