j'ai données comme ceci:ROW_NUMBER() sur deux colonnes, si, 2 lignes sont les mêmes alors
item_no p_no date RN()
35917 1220540 2000-04-03 1
35917 1220540 2000-04-18 1
35917 1220540 2001-02-12 1
35917 1220540 2001-03-08 1
35917 1220540 2001-03-19 1
542672 1243288 2000-01-24 1
564575 1243288 2000-01-24 2
549816 1243288 2000-01-24 3
542672 1243288 2000-02-25 1
564575 1243288 2000-02-25 2
549816 1243288 2000-02-25 3
Je veux sélectionner un enregistrement pour chaque p_no, avec la date maximum (le plus récent record) . S'il y a 2 lignes avec le même p_no et la même date, je dois vérifier item_no et sélectionner record avec le plus haut. Exemple:
- p_no = 1243288 a deux 2000-02-25 et 2000-01-24 DATES
- Date 2000-02-25 est GREATEST si les enregistrements avec date = 2000-02-25 est ce Je suis à la recherche
- il y a 3 enregistrements avec un même groupe (p_np, date) donc je dois sélectionner ENREGISTRE avec le plus grand No_article
dossier Je suis intéressé par:
564575 1243288 2000-02-25 2
I utilisé ROW_NUMBER() pour obtenir la colonne RN
row_number() over (partition by p_no, date order by date desc) rnk,
mais je ne sais pas comment utiliser cette colonne et vérifiez No_article pour sélectionner ce que je dois. Est-ce que mon approche est fausse? Des suggestions?
Ajoutez simplement 'ITEM_NO desc' à la clause' order by' de la fonction analytique. Incidemment, si vous utilisez 12c [consultez cette réponse] (https://stackoverflow.com/a/43028479/146325) – APC