Ich habe eine Tabelle mit Sensordaten. Jede Zeile hat eine Sensor-ID, einen Zeitstempel und andere Felder. Ich möchte eine einzelne Zeile mit dem spätesten Zeitstempel für jeden Sensor auswählen, einschließlich einiger der anderen Felder.Wie kann ich Zeilen mit dem letzten Zeitstempel für jeden Schlüsselwert auswählen?
Ich dachte, dass die Lösung Gruppe von Sensor-ID sein würde und dann, um von max (Zeitstempel) wie folgt:
SELECT sensorID,timestamp,sensorField1,sensorField2
FROM sensorTable
GROUP BY sensorID
ORDER BY max(timestamp);
Das bin ich einen Fehler gibt zu sagen, dass „sensorField1 in der Gruppe durch Klausel erscheinen müssen oder in einem Aggregat verwendet werden. "
Was ist der richtige Weg, um dieses Problem anzugehen?
Welche DB-Engine verwenden Sie? –
Während die Antworten unter Verwendung von JOINs auf dem Max (Zeitstempel) -Wert funktionieren sollten, würde ich empfehlen, einer SensorReadingId beizutreten, wenn Sie eine auf der SensorTabelle haben. –