mysql id 间隔_mysql – SQL查询:在给定时间间隔内处于活动状态的所有ID的列表,按其开始时间排序...

我有一个

MySQL表,包含轨道的点(x / y坐标).每行包含TrackID,时间戳以及该给定时间点该轨道的X和Y位置.

我想要的是在给定时间间隔(tmin … tmax)期间活动的所有TrackID的列表,按其开始时间排序,即使该开始时间在该间隔之外.

一个小插图可能有所帮助:

例如:Track 1从t11到t12处于活动状态,这意味着我的表中有很多行ID = 1且时间戳从t11到t12.

期望的输出是:

TrackID | StartTime

--------+-----------

7 | t71

1 | t11

2 | t21

6 | t61

我试过这样的事情:

SELECT TrackID, MIN(Timestamp) AS StartTime FROM Tracks WHERE Timestamp BETWEEN tmin AND tmax GROUP BY TrackID ORDER BY StartTime;

但是,在上面的示例中,我没有得到轨道1和7的实际开始时间,因为根本不考虑时间戳小于tmin的所有行.

当然,我可以在第一步中获得所有活动的TrackID

SELECT TrackID FROM Tracks WHERE Timestamp BETWEEN tmin AND tmax GROUP BY TrackID;

然后使用单独的查询查找所有这些轨道的开始时间,然后在我的应用程序代码中对它们进行排序.

但我确信有一种方法可以使用一个SQL查询来完成此操作.我的表包含数百万行,因此效率是一个问题.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值