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:
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:
où
à la requête intérieure pour restreindre les résultats à une période de temps spécifique. 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.
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