Перейти к основному содержанию
Выбирает последнее встреченное значение, аналогично anyLast, но может принимать и NULL. В основном эту функцию следует использовать с оконными функциями. Без оконных функций результат будет случайным, если исходный поток не упорядочен.

примеры

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)

Пример 1

Значение NULL игнорируется по умолчанию.
SELECT last_value(b) FROM test_data
┌─last_value_ignore_nulls(b)─┐
│                          5 │
└────────────────────────────┘

Пример 2

Значение NULL игнорируется.
SELECT last_value(b) ignore nulls FROM test_data
┌─last_value_ignore_nulls(b)─┐
│                          5 │
└────────────────────────────┘

Пример 3

Допускается значение NULL.
SELECT last_value(b) respect nulls FROM test_data
┌─last_value_respect_nulls(b)─┐
│                        ᴺᵁᴸᴸ │
└─────────────────────────────┘

Пример 4

Стабильный результат при использовании подзапроса с 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 │
└─────────────────────────────┴───────────────┘
Последнее изменение 10 июня 2026 г.