gpt4 book ai didi

mysql - 如何在mysql中为每辆车选择一条记录

转载 作者:行者123 更新时间:2023-11-29 06:49:01 24 4
gpt4 key购买 nike

我在这里遇到了一个令人困惑的情况...mysql 中有一个表,如下所示:

                    ----locations----
+--------------------------------------------------------+
| id | time | lat | lon | vehicle_id|
| 1 | 1513865119 |13.0398796 | 77.6242876 | 1 |
| 2 | 1513865119 |13.0398796 | 77.6242876 | 1 |
| 3 | 1513865119 |13.0398796 | 77.6242876 | 2 |
| 4 | 1513865119 |13.0398796 | 77.6242876 | 2 |
| 5 | 1513865119 |13.0398796 | 77.6242876 | 4 |
| 6 | 1513865119 |13.0398796 | 77.6242876 | 3 |
| 7 | 1513865119 |13.0398796 | 77.6242876 | 2 |
| 8 | 1513865119 |13.0398796 | 77.6242876 | 3 |
| 9 | 1513865119 |13.0398796 | 77.6242876 | 3 |
| 10 | 1513865119 |13.0398796 | 77.6242876 | 1 |
+--------------------------------------------------------+

我正在尝试获取每个vehicle_id的最后已知位置

这是我尝试过的:

SELECT * FROM `locations` ORDER BY id DESC limit 1

但是上面的代码只返回一辆车。

我需要以类似的方式检索所有车辆,那么我该如何做到这一点?

提前致谢。

最佳答案

这似乎是您想要的查询:

SELECT t1.*
FROM locations t1
INNER JOIN
(
SELECT vehicle_id, MAX(time) AS max_time
FROM locations
GROUP BY vehicle_id
) t2
ON t1.vehicle_id = t2.vehicle_id AND
t1.time = t2.max_time;

这会将您的 locations 表连接到一个子查询,该子查询查找每辆车的最新记录。我在上面使用“似乎”是因为您的样本数据(也许是巧合)显示每辆车的确切时间相同。当然,为了让我的答案有意义,您需要为每辆车的最新记录提供更大的时间值。

关于mysql - 如何在mysql中为每辆车选择一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48265738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com