Passer au contenu principal
C’est un alias de any, mais il a été introduit pour des raisons de compatibilité avec les fonctions de fenêtre, pour lesquelles il est parfois nécessaire de traiter les valeurs NULL (par défaut, toutes les fonctions d’agrégation de ClickHouse ignorent les valeurs NULL). Il est possible de déclarer un modificateur pour respecter les valeurs NULL (RESPECT NULLS), aussi bien avec les fonctions de fenêtre que dans les agrégations classiques. Comme avec any, en dehors des fonctions de fenêtre, le résultat sera aléatoire si le flux source n’est pas ordonné, et le type de retour correspond au type d’entrée (NULL n’est renvoyé que si l’entrée est Nullable ou si le combinator -OrNull est ajouté).

exemples

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);

Exemple 1

Par défaut, la valeur NULL est ignorée.
SELECT first_value(b) FROM test_data;
┌─any(b)─┐
│      3 │
└────────┘

Exemple 2

La valeur NULL est ignorée.
SELECT first_value(b) ignore nulls FROM test_data
┌─any(b) IGNORE NULLS ─┐
│                    3 │
└──────────────────────┘

Exemple 3

La valeur NULL est acceptée.
SELECT first_value(b) respect nulls FROM test_data
┌─any(b) RESPECT NULLS ─┐
│                  ᴺᵁᴸᴸ │
└───────────────────────┘

Exemple 4

Résultat stabilisé grâce à la sous-requête avec 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 │
└──────────────────────┴────────┘
Dernière modification le 25 juin 2026