Maison >base de données >tutoriel mysql >Comment récupérer la dernière valeur de chaque groupe en fonction de l'horodatage dans Oracle SQL ?
Extraction des entrées les plus récentes pour chaque groupe dans Oracle SQL
Ce tutoriel illustre une tâche courante de base de données : récupérer l'enregistrement le plus récent pour chaque groupe en fonction d'un horodatage. Nous utiliserons un tableau contenant les identifiants, les horodatages et les quantités à titre d'exemple.
Défi :
Étant donné un tableau avec des colonnes d'ID, d'horodatage ("date") et de quantité ("quantité"), comment sélectionner efficacement la dernière quantité (et son horodatage associé) pour chaque ID unique ?
Solution :
Cela peut être réalisé en utilisant l'approche suivante :
La requête Oracle SQL suivante implémente cette solution :
<code class="language-sql">SELECT x.id, x."date", x.quantity FROM ( SELECT id, "date", RANK() OVER (PARTITION BY id ORDER BY "date" DESC) AS rnk, quantity FROM qtys ) x WHERE x.rnk = 1;</code>
Extension de la requête :
Cette requête basique peut être adaptée pour répondre à des besoins plus complexes :
WHERE
à la requête interne pour limiter les résultats à une période de temps spécifique.id
. Par exemple, vous pouvez rejoindre une table contenant l'ID et le nom pour inclure les noms dans la sortie.Cette méthode fournit un moyen robuste et efficace de récupérer les dernières valeurs par groupe en fonction d'un horodatage dans Oracle SQL, applicable à diverses tâches d'analyse et de manipulation de donné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!