Leçon 5 / 9 — Chapitre 5: FIRST_VALUE, LAST_VALUE, NTH_VALUE et fenêtres nommées
NTH_VALUE() : la valeur à une position donnée
NTH_VALUE(colonne, n) renvoie la valeur de la n-ième ligne du cadre. Comme LAST_VALUE(), elle est sensible au même piège de cadre : sans cadre explicite couvrant toute la partition, la n-ième ligne peut ne pas encore être visible depuis les premières lignes.
SELECT joueur, manche, score,
NTH_VALUE(score, 2) OVER (
PARTITION BY joueur ORDER BY manche
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
) AS deuxieme_score
FROM scores_manche;
Avec le cadre corrigé, deuxieme_score vaut 14 sur les trois lignes de Nadia (le score de sa manche 2), et 12 sur les trois lignes de Boris.
À retenir :
NTH_VALUE(colonne, n)renvoie la valeur de la n-ième ligne du cadre — mais seulement si ce cadre contient au moins n lignes ; sinon, le résultat est NULL.- Comme LAST_VALUE, NTH_VALUE doit systématiquement être combinée à un cadre
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWINGpour donner un résultat fiable, cohérent sur toutes les lignes de la partition.
À vous de jouer : sans ce cadre explicite (avec le cadre par défaut), NTH_VALUE(score, 2) sur la manche 1 de Nadia (où une seule ligne est visible) renverrait-elle 14, ou NULL ?
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 72 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès