Aller au contenu principal
Page traduite

Cette page a été traduite de l'anglais avec l'aide de l'IA. En cas de divergence, la version anglaise fait référence.

NTH_VALUE

Renvoie la valeur de l'expression évaluée sur la N-ième ligne du cadre de fenêtre.

Cette fonction de fenêtrage intégrée calcule le cadre de fenêtre de chaque ligne de la même manière qu'une fonction de fenêtrage d'agrégation. Elle renvoie la valeur de l'expression évaluée sur la ligne N du cadre de fenêtre. Les lignes sont numérotées au sein du cadre de fenêtre à partir de 1 dans l'ordre défini par la clause ORDER BY si elle est présente, ou dans un ordre arbitraire sinon. S'il n'y a pas de N-ième ligne dans la partition, NULL est renvoyé.

Voir aussi : [SELECT] [FIRST_VALUE] [LAST_VALUE]


Syntaxe​

SELECT NTH_VALUE(expr, N) OVER (
[PARTITION BY column]
ORDER BY column
[ROWS BETWEEN frame_start AND frame_end]
) FROM <multipartIdentifier>;

Arguments​

expr L'expression à évaluer sur la N-ième ligne du cadre de fenêtre.

N Un entier strictement positif indiquant le numéro de la ligne à récupérer (indexé à partir de 1).

PARTITION BY column Facultatif. Divise le jeu de résultats en partitions. La fonction NTH_VALUE est appliquée séparément au sein de chaque partition.

ORDER BY column Spécifie l'ordre dans lequel les lignes sont traitées.

ROWS BETWEEN frame_start AND frame_end Facultatif. Définit le cadre de fenêtre.

Valeur(s) renvoyée(s)​

Renvoie la valeur de l'expression évaluée sur la N-ième ligne du cadre de fenêtre, ou NULL si la N-ième ligne n'existe pas.


Exemples​

Obtenir le deuxième contributeur le plus important​

-- Get the top 3 contributors by name for comparison
SELECT
login,
contributions,
NTH_VALUE(login, 1) OVER (ORDER BY contributions DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as top_contributor,
NTH_VALUE(login, 2) OVER (ORDER BY contributions DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as second_contributor,
NTH_VALUE(login, 3) OVER (ORDER BY contributions DESC
ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as third_contributor
FROM github.repos.contributors
WHERE owner = 'stackql'
AND repo = 'stackql';

Pour plus d'informations, consultez https://sqlite.org/windowfunctions.html#built-in_window_functions.