関数集約関数集約関数last_valuelast_value anyLast と同様に、最後に出現した値を選択しますが、NULL も許容します。 主に Window Functions(ウィンドウ関数)と組み合わせて使用します。 Window Functions を使用しない場合、入力ストリームに順序付けがされていないと、結果はランダムになります。 使用例 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 │ └─────────────────────────────┴───────────────┘