Abstand zwischen den Punkten:Abrufen der ersten und letzten Datensätze jeder Gruppe
Ich habe eine Reihe von GPS-Punkten von jedem Fahrzeug gereist. Ich versuche, die ersten und letzten Aufzeichnungen für jede Reise zu erhalten.
Daten:
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
In dem obigen Datensatz muss ich die resultset die ersten und letzten Punkte jeder Reise.
VehicleId TripId StartLat StartLong EndLat EndLong
121 131 33.645 -84.424 35.111 -85.111
Ich habe versucht, mit der unter Abfrage, aber ich bekomme die Fehlermeldung „Correlated Subqueries, die anderen Tabellen verweisen, werden nicht unterstützt, wenn sie nicht dekorreliert werden können, wie durch sie zu einem effizienten JOIN verwandeln“. Jede Hilfe wäre willkommen.
SELECT
a.VehicleId,
a.Tripid,
a.Latitude AS StartLat,
a.Longitude AS StartLong,
b.Latitude AS EndLat,
b.Longitude AS EndLong,
a.DateTime
FROMQ
`Vehicles` AS a
JOIN
`Vehicles` AS b
ON
a.VehicleId = b.VehicleId
AND a.Tripid = b.Tripid
WHERE
a.DateTime IN (
SELECT
MIN(DateTime)
FROM
`Vehicles`
WHERE
VehicleId = a.VehicleId
AND Tripid = a.Tripid)
AND b.DateTime IN (
SELECT
MAX(DateTime)
FROM
`Vehicles`
WHERE
VehicleId = a.VehicleId
AND Tripid = a.Tripid)