Ho una tabella dei dati del sensore. Ogni riga ha un ID sensore, un timestamp e altri campi. Voglio selezionare una singola riga con l'ultimo timestamp per ciascun sensore, inclusi alcuni degli altri campi.Come posso selezionare le righe con il timestamp più recente per ogni valore chiave?
ho pensato che la soluzione potrebbe essere quella di gruppo dal sensore id e poi ordinare da Max (timestamp) in questo modo:
SELECT sensorID,timestamp,sensorField1,sensorField2
FROM sensorTable
GROUP BY sensorID
ORDER BY max(timestamp);
Questo mi dà un errore che dice che "sensorField1 deve apparire nella clausola group by o essere utilizzato in un aggregato. "
Qual è il modo corretto di affrontare questo problema?
Che motore DB stai utilizzando? –
Mentre le risposte seguenti usando JOINs sul valore Max (timestamp) dovrebbero funzionare, suggerirei di unirmi a SensorReadingId se ne hai una sul SensorTable. –