Ich versuche, erste Zeile jeder Gruppe in mysql auszuwählen. Ich folgte Beispielen wie How to select the first row for each group in MySQL?Mysql Reihenfolge Gruppe durch seltsames Verhalten
Aus irgendeinem Grund funktioniert das nicht für mich. Die folgende SQL-Having
SELECT stationID, vrID, vrsCreatedAt FROM (
SELECT VRS.stationID, VR.vrVehicleID, VRS.vrID, VRS.vrsCreatedAt FROM VehicleRoutes VR
LEFT OUTER JOIN VehicleRouteStations VRS ON VRS.vrID = VR.vrID
WHERE VR.vrRouteID = 8 AND VR.vrStatus = 'active' AND VR.vrID = 65
ORDER BY VRS.vrsCreatedAt DESC) x
Und die Ergebnismenge ist
43 65 2017-02-06 17:15:14
9 65 2017-02-06 17:13:12
42 65 2017-02-06 17:09:25
41 65 2017-02-06 17:07:14
69 65 2017-02-06 17:03:58
........
42 65 2017-01-17 16:35:47
63 65 2017-01-17 14:34:57
322 65 2017-01-17 14:31:45
315 65 2017-01-17 13:53:33
Wenn ich die Gruppe von statemenet
SELECT stationID, vrID, vrsCreatedAt FROM (
SELECT VRS.stationID, VR.vrVehicleID, VRS.vrID, VRS.vrsCreatedAt FROM VehicleRoutes VR
LEFT OUTER JOIN VehicleRouteStations VRS ON VRS.vrID = VR.vrID
WHERE VR.vrRouteID = 8 AND VR.vrStatus = 'active' AND VR.vrID = 65
ORDER BY VRS.vrsCreatedAt DESC) x GROUP BY vrID
I
315 65 2017-01-17 13:53:33
Beantragen
Dies ist definitiv nicht erste Reihe, es ist die letzte. Selbst wenn ich ORDER BY VRS.vrsCreatedAt DESC
versuche, bekomme ich das gleiche Verhalten.
Ich weiß, das sollte funktionieren, seit ich vorher verwendet habe. Vielleicht funktioniert das in der neuesten MySQL-Version 5.7.17-0ubuntu0.16.04.1 (Ubuntu)
nicht mehr?
Danke
Welche Gruppe? Ple Geben Sie Beispieldaten und die erwartete Ausgabe zusammen mit der Erläuterung der Logik an. – GurV
Versuchen Sie 'MIN (vrsCreatedAt)' – marekful
'GROUP BY' garantiert keine spezifischen Ergebnisse für nicht aggregierte, nicht gruppierte Felder. – Uueerdo