メインコンテンツへスキップ
any のエイリアスですが、Window Functions との互換性のために導入されました。Window Functions では NULL 値を処理する必要がある場合があり (デフォルトでは ClickHouse のすべての集約関数は NULL 値を無視します) 。 Window Functions と通常の集計の両方で、NULL を考慮する修飾子 (RESPECT NULLS) を指定できます。 any と同様に、Window Functions を使用しない場合、入力ストリームが順序付けされていなければ結果はランダムになり、戻り値の型は入力型と一致します (NULL が返されるのは、入力が Nullable であるか、-OrNull combinator が追加されている場合のみです) 。

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 first_value(b) FROM test_data;
┌─any(b)─┐
│      3 │
└────────┘

例 2

NULL 値は無視されます。
SELECT first_value(b) ignore nulls FROM test_data
┌─any(b) IGNORE NULLS ─┐
│                    3 │
└──────────────────────┘

例 3

NULL 値を使用できます。
SELECT first_value(b) respect nulls FROM test_data
┌─any(b) RESPECT NULLS ─┐
│                  ᴺᵁᴸᴸ │
└───────────────────────┘

例 4

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 │
└──────────────────────┴────────┘
最終更新日 2026年6月10日