私はmysqlの各グループの最初の行を選択しようとしています。私は例のように従ったHow to select the first row for each group in MySQL?奇妙な振る舞いでMysqlオーダーグループ
これは私のために何らかの理由で動作しません。私はstatemenetでグループを適用すると、次のSQL
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
、結果セットを持つことは、私はこれはdefinetelyない
315 65 2017-01-17 13:53:33
取得
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
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
です最初の行、最後の行。たとえ私が試してもORDER BY VRS.vrsCreatedAt DESC
私は同じ動作を取得します。
私は以前使用していたので、これはうまくいくはずです。たぶん最新のMySQLバージョン5.7.17-0ubuntu0.16.04.1 (Ubuntu)
でこれはもう動作しませんか?
ありがとうございました
どのグループですか? aseはサンプルデータと期待される出力をロジックの説明とともに提供します。 – GurV
'MIN(vrsCreatedAt) 'を試してください – marekful
' GROUP BY'は集計されていない、グループ化されていないフィールドの特定の結果を保証するものではありません。 – Uueerdo