Maison > base de données > tutoriel mysql > Comment sélectionner la ligne horodatée la plus récente pour chaque clé dans SQL ?

Comment sélectionner la ligne horodatée la plus récente pour chaque clé dans SQL ?

Barbara Streisand
Libérer: 2024-12-17 16:45:11
original
427 Les gens l'ont consulté

How to Select the Most Recent Timestamped Row for Each Key in SQL?

Sélection des dernières lignes horodatées pour chaque valeur clé

Lors de la gestion des données sur plusieurs entrées, il est souvent nécessaire d'identifier et de récupérer l'enregistrement contenant l'horodatage le plus récent pour une clé donnée. Bien qu'une approche simple puisse impliquer un regroupement par clé et un classement par horodatage maximum, cela peut entraîner des erreurs liées aux champs n'apparaissant pas dans la clause group by.

Pour surmonter ce problème, une structure de requête alternative propose une solution viable :

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

Cette requête fait essentiellement correspondre chaque ligne de sensorTable s1 avec son homologue horodaté le plus récent dans sensorTable s2. La clause WHERE filtre efficacement toutes les lignes à l'exception de celles avec l'horodatage maximum pour chaque clé, garantissant ainsi que les données sélectionnées sont les plus à jour. En regroupant les résultats par sensorID et en triant par horodatage, la requête renvoie une seule ligne avec le dernier horodatage pour chaque clé, ainsi que les champs supplémentaires souhaités.

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