Maison > base de données > tutoriel mysql > Comment récupérer efficacement les données de capteur les plus récentes pour chaque ID de capteur unique ?

Comment récupérer efficacement les données de capteur les plus récentes pour chaque ID de capteur unique ?

Linda Hamilton
Libérer: 2024-12-23 15:33:11
original
853 Les gens l'ont consulté

How to Efficiently Retrieve the Most Recent Sensor Data for Each Unique Sensor ID?

Récupération de lignes avec des horodatages récents pour chaque valeur clé

Dans un tableau avec des données de capteur, vous rencontrez le besoin de sélectionner les lignes les plus récentes pour chaque ID de capteur unique. Le défi se pose lorsque la requête souhaitée renvoie une erreur en raison d'un regroupement non spécifié.

Pour résoudre ce problème, il existe deux approches efficaces :

Approche 1 : Requête imbriquée

Cette méthode utilise une requête imbriquée pour identifier l'horodatage maximum pour chaque capteur ID :

SELECT sensorID, timestamp, sensorField1, sensorField2 
FROM sensorTable s1
WHERE timestamp = (SELECT MAX(timestamp) FROM sensorTable s2 WHERE s1.sensorID = s2.sensorID)
ORDER BY sensorID, timestamp;
Copier après la connexion

Approche 2 : Fonction de fenêtre

Vous pouvez également exploiter une fonction de fenêtre, MAX() sur une fenêtre coulissante, pour obtenir le résultat souhaité :

SELECT sensorID, MAX(timestamp) OVER (PARTITION BY sensorID ORDER BY timestamp) AS max_timestamp, sensorField1, sensorField2 
FROM sensorTable 
ORDER BY sensorID, max_timestamp;
Copier après la connexion

Les deux approches sélectionnent effectivement une seule ligne pour chaque ID de capteur, représentant le point de données le plus récent. Le choix dépend de l'environnement de base de données spécifique et des exigences de performances.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal