函数聚合函数聚合函数last_valuelast_value 选择最后出现的值,与 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 │ └─────────────────────────────┴───────────────┘