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!