É um alias para any, mas foi introduzido para compatibilidade com funções de janela, em que às vezes é necessário processar valores NULL (por padrão, todas as funções de agregação do ClickHouse ignoram valores NULL).
Ele permite declarar um modificador para respeitar nulos (RESPECT NULLS), tanto em funções de janela quanto em agregações normais.
Assim como em any, sem funções de janela o resultado será aleatório se o fluxo de origem não estiver ordenado, e o tipo de retorno
corresponder ao tipo de entrada (NULL só é retornado se a entrada for Nullable ou se o combinador -OrNull for adicionado).
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);
Por padrão, o valor NULL é ignorado.
SELECT first_value(b) FROM test_data;
┌─any(b)─┐
│ 3 │
└────────┘
O valor NULL é ignorado.
SELECT first_value(b) ignore nulls FROM test_data
┌─any(b) IGNORE NULLS ─┐
│ 3 │
└──────────────────────┘
O valor NULL é aceito.
SELECT first_value(b) respect nulls FROM test_data
┌─any(b) RESPECT NULLS ─┐
│ ᴺᵁᴸᴸ │
└───────────────────────┘
Resultado estabilizado com a subconsulta usando ORDER BY.
SELECT
first_value_respect_nulls(b),
first_value(b)
FROM
(
SELECT *
FROM test_data
ORDER BY a ASC
)
┌─any_respect_nulls(b)─┬─any(b)─┐
│ ᴺᵁᴸᴸ │ 3 │
└──────────────────────┴────────┘
Última modificação em 10 de junho de 2026