Saltar al contenido principal
Selecciona el último valor encontrado, de forma similar a anyLast, pero también puede aceptar NULL. En la mayoría de los casos, debe usarse con funciones de ventana. Sin funciones de ventana, el resultado será aleatorio si el flujo de datos de origen no está ordenado.

ejemplos

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)

Ejemplo 1

El valor NULL se omite de forma predeterminada.
SELECT last_value(b) FROM test_data
┌─last_value_ignore_nulls(b)─┐
│                          5 │
└────────────────────────────┘

Ejemplo 2

Se ignora el valor NULL.
SELECT last_value(b) ignore nulls FROM test_data
┌─last_value_ignore_nulls(b)─┐
│                          5 │
└────────────────────────────┘

Ejemplo 3

Se acepta el valor NULL.
SELECT last_value(b) respect nulls FROM test_data
┌─last_value_respect_nulls(b)─┐
│                        ᴺᵁᴸᴸ │
└─────────────────────────────┘

Ejemplo 4

Resultado estabilizado mediante la subconsulta con 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 │
└─────────────────────────────┴───────────────┘
Última modificación el 10 de junio de 2026