关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
两年前关门了。
改进这个问题
我有一个数据库,里面有时间戳列表和它们对应的纬度和经度。我正在尝试获取数据库中最新时间戳的经度和纬度。这里我可以得到最新的时间戳,但我的纬度和经度没有更新,总是返回第一个时间戳的值。如何让它从最近的时间戳返回?
SELECT delivery.vehicle_id, max(timestamp), latitude, longitude from test
inner join delivery on delivery.vehicle_id = test.vehicle_id
where DATE_FORMAT(timestamp,'%H:%i:%s') <=
DATE_FORMAT(CURRENT_TIMESTAMP,'%H:%i:%s')
group by delivery.vehicle_id
期望输出:例如,车辆id 4034的最新时间戳为13:20,车辆id的最新时间戳为13:05,因此,车辆id 4034的最新时间戳应为纬度=22.29098,经度=114.199942,车辆id 4035的最新时间戳应为纬度=22.279973,经度=114.188513。输出必须是所有车辆的最新纬度和经度,而不仅仅是一个。
delivery table
vehicle_id start_time end_time
4034 11/1/2014 9:00 11/1/2014 17:00
4035 11/1/2014 8:00 11/1/2014 16:00
test table
timestamp vehicle_id latitude longitude
11/1/2014 0:00 4034 22.283861 114.146215
11/1/2014 3:59 4034 22.292902 114.200619
11/1/2014 8:49 4034 22.28557 114.192797
11/1/2014 13:20 4034 22.29098 114.199942
11/1/2014 13:23 4034 22.290495 114.196016
11/1/2014 0:08 4035 22.293131 114.200671
11/1/2014 6:02 4035 22.293043 114.200737
11/1/2014 9:35 4035 22.278188 114.153437
11/1/2014 13:05 4035 22.279973 114.188513
11/1/2014 14:33 4035 22.277418 114.17543
1条答案
按热度按时间ryoqjall1#
对于这种方法,您首先需要为每个
vehicle_id
,然后在适当的列上联接此子查询,以获取其余信息(即相关的纬度和经度):注意,只有当时间戳数据被规范化时(如在下一个示例中),或者如果您使用一种可用于此的mysql类型:datetime或timestamp,这才是好的。
您可以在下一个链接中使用一个工作示例:
db小提琴示例