> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Это псевдоним для any, но он был введён для совместимости с оконными функциями, где иногда требуется обрабатывать значения `NULL` (по умолчанию все агрегатные функции ClickHouse игнорируют значения `NULL`).

# first_value

Это псевдоним для [`any`](/ru/reference/functions/aggregate-functions/any), но он был введён для совместимости с [оконными функциями](/ru/reference/functions/window-functions/index), где иногда требуется обрабатывать значения `NULL` (по умолчанию все агрегатные функции ClickHouse игнорируют значения `NULL`).

Поддерживается указание модификатора для учёта значений `NULL` (`RESPECT NULLS`) как в [оконных функциях](/ru/reference/functions/window-functions/index), так и в обычных агрегациях.

Как и в случае с `any`, без оконных функций результат будет случайным, если входной поток не упорядочен, а возвращаемый тип
совпадает с входным типом (`NULL` возвращается только в том случае, если входной тип — `Nullable` или добавлен комбинатор `-OrNull`).

<div id="examples">
  ## Примеры
</div>

```sql theme={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);
```

<div id="example1">
  ### Пример 1
</div>

По умолчанию значение NULL игнорируется.

```sql theme={null}
SELECT first_value(b) FROM test_data;
```

```text theme={null}
┌─any(b)─┐
│      3 │
└────────┘
```

<div id="example2">
  ### Пример 2
</div>

Значение NULL игнорируется.

```sql theme={null}
SELECT first_value(b) ignore nulls FROM test_data
```

```text theme={null}
┌─any(b) IGNORE NULLS ─┐
│                    3 │
└──────────────────────┘
```

<div id="example3">
  ### Пример 3
</div>

Допускается значение NULL.

```sql theme={null}
SELECT first_value(b) respect nulls FROM test_data
```

```text theme={null}
┌─any(b) RESPECT NULLS ─┐
│                  ᴺᵁᴸᴸ │
└───────────────────────┘
```

<div id="example4">
  ### Пример 4
</div>

Стабильный результат при использовании подзапроса с `ORDER BY`.

```sql theme={null}
SELECT
    first_value_respect_nulls(b),
    first_value(b)
FROM
(
    SELECT *
    FROM test_data
    ORDER BY a ASC
)
```

```text theme={null}
┌─any_respect_nulls(b)─┬─any(b)─┐
│                 ᴺᵁᴸᴸ │      3 │
└──────────────────────┴────────┘
```
