Перейти к основному содержимому
Перейти к основному содержимому

any

any

Появилась в версии v1.1

Выбирает первое встретившееся значение в столбце.

Примечание

Так как запрос может выполняться в произвольном порядке, результат этой функции является недетерминированным. Если вам нужен произвольный, но детерминированный результат, используйте функции min или max.

По умолчанию функция никогда не возвращает NULL, т.е. игнорирует значения NULL во входном столбце. Однако, если функция используется с модификатором RESPECT NULLS, она возвращает первое прочитанное значение, независимо от того, является оно NULL или нет.

Примечание

Тип возвращаемого значения функции совпадает с типом аргумента, за исключением LowCardinality, который отбрасывается. Это означает, что при отсутствии строк во входных данных функция вернёт значение по умолчанию для этого типа (0 для целых чисел или Null для столбца типа Nullable()). Вы можете использовать комбинатор -OrNull, чтобы изменить это поведение.

Особенности реализации

В некоторых случаях можно полагаться на порядок выполнения. Это относится к ситуациям, когда SELECT берётся из подзапроса, использующего ORDER BY.

Когда запрос SELECT содержит предложение GROUP BY или хотя бы одну агрегатную функцию, ClickHouse (в отличие от MySQL) требует, чтобы все выражения в предложениях SELECT, HAVING и ORDER BY вычислялись из ключей или из агрегатных функций. Другими словами, каждый столбец, выбираемый из таблицы, должен использоваться либо в ключах, либо внутри агрегатных функций. Чтобы получить поведение, похожее на MySQL, вы можете обернуть остальные столбцы в агрегатную функцию any.

Синтаксис

any(column)[ RESPECT NULLS]

Псевдонимы: any_value, first_value

Аргументы

  • column — имя столбца. Any

Возвращаемое значение

Возвращает первое встреченное значение. Any

Примеры

Пример использования

CREATE TABLE tab (city Nullable(String)) ENGINE=Memory;
INSERT INTO tab (city) VALUES (NULL), ('Amsterdam'), ('New York'), ('Tokyo'), ('Valencia'), (NULL);
SELECT any(city), anyRespectNulls(city) FROM tab;
┌─any(city)─┬─anyRespectNulls(city)─┐
│ Amsterdam │ ᴺᵁᴸᴸ                  │
└───────────┴───────────────────────┘