"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment obtenir la dernière valeur de chaque groupe en fonction de l'horodatage dans Oracle SQL?

Comment obtenir la dernière valeur de chaque groupe en fonction de l'horodatage dans Oracle SQL?

Publié le 2025-04-13
Parcourir:971

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 d'Oracle SQL

Ce didacticiel démontre une tâche de base de données commune: récupérer l'enregistrement le plus récent pour chaque groupe en fonction d'un horodatage. Nous utiliserons un tableau contenant des ID, des horodatages et des quantités comme exemple.

Défi:

Étant donné un tableau avec ID, TimeStamp ("Date"), et les colonnes de quantité ("Quantité"), comment sélectionnons-nous 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 horodat: Attribuez un rang à chaque ligne de chaque groupe d'ID, commandé par horodatage dans l'ordre descendant.
  2. Sélection des rangs supérieurs: Filtrez les résultats pour inclure uniquement les lignes avec le rang 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:

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;

étendant la requête:

Cette requête de base peut être adaptée pour répondre aux besoins plus complexes:

  • filtrage basé sur le temps: ajouter une clause à la requête intérieure pour restreindre les résultats à une période de temps spécifique.
  • Rejoindre avec d'autres tables: intégrer les données de tables supplémentaires en rejoignant la colonne id . Par exemple, vous pouvez vous joindre à un tableau contenant l'ID et le nom pour inclure des 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 d'Oracle SQL, applicable à diverses tâches d'analyse et de manipulation de données.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3