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 ?

Comment récupérer la dernière valeur de chaque groupe en fonction de l'horodatage dans Oracle SQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-21 15:47:10262parcourir

How to Retrieve the Latest Value for Each Group Based on Timestamp in 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 :

  1. Classement par horodatage : Attribuez un classement à chaque ligne de chaque groupe d'ID, classé par horodatage par ordre décroissant.
  2. Sélection des meilleurs classements : Filtrez les résultats pour inclure uniquement les lignes avec le classement le plus élevé pour chaque ID. Ces lignes représentent les dernières entrées.

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 :

  • Filtrage basé sur le temps : Ajoutez une clause WHERE à la requête interne pour limiter les résultats à une période de temps spécifique.
  • Joindre avec d'autres tables : Intégrez les données de tables supplémentaires en vous joignant à la colonne 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!

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