메인 콘텐츠로 건너뛰기
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 │
└─────────────────────────────┴───────────────┘
마지막 수정일 2026년 6월 10일