Ich habe Id1 und Id2 mit verschiedenen Zeit und ETime. Für jede Gruppe von Id1 und Id2 tendiere ich dazu, den ersten und letzten Datensatz zu erhalten (wie in der Ausgabe gezeigt). Ich habe versucht, Partitionieren der Tabelle mit Id1 und Id2 und um sie von asc und desc Reihenfolge mit:Erste und letzte Datensätze in einer Tabelle
ROW_NUMBER() OVER(PARTITION BY B.HardwareId, A.TripId ORDER BY StartTime) AS first_record,
ROW_NUMBER() OVER(PARTITION BY B.HardwareId, A.TripId ORDER BY StopTime DESC) AS last_record
Ich habe nicht die Ergebnisse erhalten, wie erwartet.
SELECT
A.Id1 AS Id1,
A.Id2 AS TriId2pId,
STime,
ETime,
Latitude,
Longitude
FROM
Tr.T1 AS A
JOIN
Tp.G2 AS B
ON
A.STime < B.DateTime
AND A.ETime >= B.DateTime
AND A.Id1 = B.Id1
WHERE
(A._PARTITIONTIME BETWEEN TIMESTAMP('2016-11-23')
AND TIMESTAMP('2016-11-23')
AND A.Id1 IN (976))
ORDER BY
B.Id1,
A.Id2,
B.DateTime
Id1 Id2 STime ETime Latitude Longitude
976 715 2016-11-23 13:06:26 2016-11-23 13:23:30 26.2230015 -80.12314
976 715 2016-11-23 13:06:26 2016-11-23 13:23:30 26.2229767 -80.12326
976 715 2016-11-23 13:06:26 2016-11-23 13:23:30 26.2226944 -80.12344
976 800 2016-11-23 13:06:26 2016-11-23 13:24:59 26.2251511 -80.11865
976 800 2016-11-23 13:06:26 2016-11-23 13:24:59 26.2251511 -80.11912
976 800 2016-11-23 13:06:26 2016-11-23 13:24:59 26.2250233 -80.11929
976 800 2016-11-23 13:06:26 2016-11-23 13:24:59 26.2245369 -80.11929
Id1 Id2 STime ETime Latitude Longitude
976 715 2016-11-23 13:06:26 2016-11-23 13:23:30 26.2230015 -80.12314
976 715 2016-11-23 13:06:26 2016-11-23 13:23:30 26.2226944 -80.12344
976 800 2016-11-23 13:06:26 2016-11-23 13:24:59 26.2251511 -80.11865
976 800 2016-11-23 13:06:26 2016-11-23 13:24:59 26.2245369 -80.11929
zuerst und zuletzt für jede Id oder für den ganzen Ausgang? –
Ich versuche es für jeden Id – user3447653
und was ist 'first' und' last'? Basiert es auf welchem Feld genau? –