Maison >base de données >tutoriel mysql >Comment récupérer les dernières valeurs par groupe dans Oracle SQL en fonction du temps ?

Comment récupérer les dernières valeurs par groupe dans Oracle SQL en fonction du temps ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-21 15:31:09323parcourir

How to Retrieve the Latest Values Per Group in Oracle SQL Based on Time?

Utilisation d'Oracle SQL pour extraire les derniers points de données par groupe en fonction de l'horodatage

Ce guide présente plusieurs méthodes pour récupérer les valeurs les plus récentes de chaque groupe dans une base de données Oracle, classées par horodatage.

Requête fondamentale :

La requête suivante récupère la dernière valeur pour chaque id, ainsi que sa date et sa quantité associées :

<code class="language-sql">SELECT id, MAX(date) AS "DATE", MAX(quantity) AS "QUANTITY"
FROM qtys
GROUP BY id;</code>

Méthode 1 : Filtrage par fenêtre horaire spécifique (par exemple, XX dernières minutes)

Pour limiter les résultats aux entrées des XX dernières minutes, intégrez une clause WHERE :

<code class="language-sql">SELECT id, date, quantity
FROM qtys
WHERE date > (SELECT MAX(date) - INTERVAL 'XX' MINUTE FROM qtys);</code>

Méthode 2 : combiner des identifiants avec des données textuelles d'une autre table

Pour ajouter des identifiants avec le texte correspondant à partir d'une table nommée « idnames », utilisez la requête suivante :

<code class="language-sql">SELECT t1.id || '-' || t2.idname AS "ID-IDNAME",
       MAX(t1.date) AS "DATE",
       MAX(t1.quantity) AS "QUANTITY"
FROM qtys t1
INNER JOIN idnames t2 ON t1.id = t2.id
GROUP BY t1.id;</code>

Résultats illustratifs :

Le format de sortie attendu ressemble à ceci :

<code>ID-IDNAME  DATE                QUANTITY
---------- ------------------- ----------
1-testid1  2010-01-04 11:00        152
2-testid2  2010-01-04 11:00        210
3-testid3  2010-01-04 10:30        214
4-testid4  2010-01-04 10:45        122</code>

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