Passer au contenu principal
Sélectionne la dernière valeur rencontrée, comme anyLast, mais peut accepter NULL. S’utilise principalement avec les fonctions de fenêtre. Sans fonctions de fenêtre, le résultat sera aléatoire si le flux source n’est pas ordonné.

exemples

CREATE TABLE test_data
(
    a Int64,
    b Nullable(Int64)
)
ENGINE = Memory;

INSERT INTO test_data (a, b) VALUES (1,null), (2,3), (4, 5), (6,null)

Exemple 1

La valeur NULL est ignorée par défaut.
SELECT last_value(b) FROM test_data
┌─last_value_ignore_nulls(b)─┐
│                          5 │
└────────────────────────────┘

Exemple 2

La valeur NULL est ignorée.
SELECT last_value(b) ignore nulls FROM test_data
┌─last_value_ignore_nulls(b)─┐
│                          5 │
└────────────────────────────┘

Exemple 3

La valeur NULL est acceptée.
SELECT last_value(b) respect nulls FROM test_data
┌─last_value_respect_nulls(b)─┐
│                        ᴺᵁᴸᴸ │
└─────────────────────────────┘

Exemple 4

Résultat stable à l’aide de la sous-requête avec ORDER BY.
SELECT
    last_value_respect_nulls(b),
    last_value(b)
FROM
(
    SELECT *
    FROM test_data
    ORDER BY a ASC
)
┌─last_value_respect_nulls(b)─┬─last_value(b)─┐
│                        ᴺᵁᴸᴸ │             5 │
└─────────────────────────────┴───────────────┘
Dernière modification le 29 juin 2026