LAST_VALUE |
Dernière valeur |
| BigQuery |
Syntaxe
|
LAST_VALUE(value_expression [{RESPECT | IGNORE} NULLS])
|
Paramètres
| Nom |
Description |
| value_expression |
Ce paramètre permet de spécifier l'expression pour laquelle vous souhaitez obtenir la dernière valeur. Il s'agit généralement d'une colonne ou d'un calcul basé sur une colonne. |
| RESPECT NULLS |
Ce paramètre permet de spécifier que la fonction LAST_VALUE doit inclure les valeurs NULL lors de la détermination de la dernière valeur. |
| IGNORE NULLS |
Ce paramètre permet de spécifier que la fonction LAST_VALUE doit ignorer toutes les valeurs NULL lors de la détermination de la dernière valeur. |
Description
Cette fonction permet de demander la dernière enregistrement d'un ensemble de valeurs.
Remarques
- Récupération de la dernière valeur dans une fenêtre analytique : La fonction LAST_VALUE permet d'extraire la dernière valeur d'un ensemble ordonné,
défini par une clause OVER(). Elle est particulièrement utile pour obtenir l'état final ou la dernière observation dans un groupe ou une série temporelle, sans avoir
à faire une sous-requête.
- Nécessite l'utilisation de clauses analytiques : LAST_VALUE est une fonction analytique : elle doit être utilisée avec une clause OVER(...), comprenant
généralement un ORDER BY pour définir l'ordre, et éventuellement un PARTITION BY pour segmenter les données en groupes logiques. Sans ces éléments, la fonction ne
produit pas un comportement déterministe.
- Importance du cadre de fenêtre (ROWS BETWEEN) : Par défaut, LAST_VALUE prend en compte toutes les lignes jusqu'à la ligne courante. Cela signifie que,
sans clause explicite ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING, elle ne renvoie pas nécessairement la toute dernière valeur d'un groupe. La
configuration de la fenêtre est donc essentielle pour obtenir le bon résultat.
- Gestion explicite des valeurs NULL : Grâce aux options RESPECT NULLS et IGNORE NULLS, la fonction peut être configurée pour inclure ou ignorer les
valeurs NULL dans la recherche de la dernière valeur. Cela donne plus de contrôle au développeur selon le contexte des données (exemple : faut-il considérer qu'une
valeur manquante peut être une valeur finale ?).
- Utilité dans les calculs de cumul ou d'état final : LAST_VALUE est fréquemment utilisée dans les calculs d'état final constant sur toutes les lignes
d'une partition. Par exemple, elle permet d'afficher sur chaque ligne d'un utilisateur la dernière date de connexion ou le montant final d'un solde, facilitant les
comparaisons et les calculs.
- Résultats influencés par l'ordre défini : Le comportement de LAST_VALUE dépend entièrement de l'ordre spécifié dans la clause ORDER BY. Si l'ordre n'est
pas correctement défini (par exemple, trié par un champ non pertinent), la valeur retournée peut être trompeuse. Il est donc crucial de bien maîtriser la logique métier
pour ordonner correctement.
- Performance dépendante de la taille des partitions : Comme toute fonction analytique, LAST_VALUE peut avoir un impact sur les performances si elle est
appliquée sur de grandes partitions ou sans restriction de fenêtre. Il est recommandé de limiter la taille de la fenêtre avec PARTITION BY et de n'utiliser que les
colonnes nécessaires à l'analyse.
- Complémentarité avec FIRST_VALUE et LAG/LEAD : LAST_VALUE fonctionne en miroir de FIRST_VALUE, qui récupère la première valeur. Ensemble, ces deux
fonctions permettent de comparer les débuts et fins d'un groupe. Elles se combinent aussi bien avec LAG ou LEAD pour détecter des changements entre plusieurs étapes
ou versions d'un enregistrement.
Dernière mise à jour : Jeudi, le 18 Juin 2020