【发布时间】:2017-08-03 14:26:56
【问题描述】:
我有一组每辆车经过的 GPS 点。我正在尝试检索车辆在每次行程中行驶的最大距离。
数据:
VehicleId TripId Latitude Longitude
121 131 33.645 -84.424
121 131 33.452 -84.409
121 131 33.635 -84.424
121 131 35.717 -85.121
121 131 35.111 -85.111
从上面的数据集中,我的结果集应该是这样的,其中 VehicleId 和 TripId 的每个组合的 startlat 和 startlong 应该是相同的,而 EndLat 和 EndLong 应该不断变化,这样我就可以找出每辆车从起点出发的最大距离。
VehicleId TripId StartLat StartLong EndLat EndLong
121 131 33.645 -84.424 33.645 -84.424
121 131 33.645 -84.424 33.452 -84.409
121 131 33.645 -84.424 33.635 -84.424
121 131 33.645 -84.424 35.717 -85.121
121 131 33.645 -84.424 35.111 -85.111
我尝试使用以下查询,但收到错误“不支持引用其他表的相关子查询,除非它们可以去相关, 例如通过将它们转换为有效的 JOIN”。任何帮助将不胜感激。我尝试了以下查询,它适用于特定的 VehicleId 和 TripId,但我无法 将其推广到所有组合。
SELECT
a.VehicleId,
a.Tripid,
a.Latitude AS StartLat,
a.Longitude AS StartLong,
b.Latitude AS EndLat,
b.Longitude AS EndLong,
a.DateTime
FROM
`Vehicles` AS a
JOIN
`Vehicles` AS b
ON
a.VehicleId = b.VehicleId
AND a.Tripid = b.Tripid
WHERE
a.VehicleId = 550340912
AND a.Tripid = 18006167 AND
a.DateTime IN (
SELECT
MIN(DateTime)
FROM
`Vehicles`
WHERE
VehicleId = 550340912
AND Tripid = 18006167)
【问题讨论】:
标签: sql google-bigquery