Maison >base de données >tutoriel mysql >Comment sélectionner les données de capteur les plus récentes en fonction des horodatages ?

Comment sélectionner les données de capteur les plus récentes en fonction des horodatages ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-23 22:57:15987parcourir

How to Select the Most Recent Sensor Data Based on Timestamps?

Sélection de valeurs récentes en fonction des clés d'horodatage

Votre approche initiale utilisant GROUP BY et max() était correcte en principe, mais la syntaxe SQL nécessite d'inclure des colonnes non agrégées dans la clause GROUP BY ou de les utiliser dans une fonction d'agrégation.

La solution correcte inclut la sélection de l'horodatage maximum pour chaque capteur, puis en l'utilisant dans une sous-requête pour récupérer les données du capteur correspondantes :

SELECT sensorID,
       MAX(timestamp) AS latest_timestamp,
       sensorField1,
       sensorField2
FROM sensorTable
GROUP BY sensorID

Cette requête récupère l'horodatage maximum pour chaque capteur. Vous pouvez ensuite utiliser cette sous-requête dans une requête imbriquée pour récupérer tous les capteurs avec cet horodatage :

SELECT *
FROM sensorTable
WHERE timestamp = (
    SELECT MAX(timestamp)
    FROM sensorTable
    WHERE sensorID = sensorTable.sensorID
)

Cette deuxième requête génère une seule ligne pour chaque capteur, avec l'horodatage le plus récent et les données de capteur associées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn