mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 00:30:49 +00:00
Russian version of hasAll
hasAny
docs. (#3550)
* Update of english version of descriprion of the table function `file`. * New syntax for ReplacingMergeTree. Some improvements in text. * Significantly change article about SummingMergeTree. Article is restructured, text is changed in many places of the document. New syntax for table creation is described. * Descriptions of AggregateFunction and AggregatingMergeTree are updated. Russian version. * New syntax for new syntax of CREATE TABLE * Added english docs on Aggregating, Replacing and SummingMergeTree. * CollapsingMergeTree docs. English version. * 1. Update of CollapsingMergeTree. 2. Minor changes in markup * Update aggregatefunction.md * Update aggregatefunction.md * Update aggregatefunction.md * Update aggregatingmergetree.md * GraphiteMergeTree docs update. New syntax for creation of Replicated* tables. Minor changes in *MergeTree tables creation syntax. * Markup fix * Markup and language fixes * Clarification in the CollapsingMergeTree article * DOCAPI-4821. Sync between ru and en versions of docs. * Fixed the ambiguity in geo functions description. * Example of JOIN in ru docs * Deleted misinforming example. * Descriptions for array functions 'hasAll' and 'hasAny' are translated into russian. * Update array_functions.md
This commit is contained in:
parent
93a3f1663e
commit
1ba752e931
@ -55,7 +55,7 @@ arrayConcat(arrays)
|
||||
|
||||
**Parameters**
|
||||
|
||||
- `arrays` – Arrays of comma-separated `[values]`.
|
||||
- `arrays` – arbitrary number of arguments of type Array.
|
||||
|
||||
**Example**
|
||||
|
||||
@ -71,9 +71,9 @@ SELECT arrayConcat([1, 2], [3, 4], [5, 6]) AS res
|
||||
|
||||
## arrayElement(arr, n), operator arr[n]
|
||||
|
||||
Get the element with the index 'n' from the array 'arr'.'n' must be any integer type.
|
||||
Get the element with the index `n` from the array `arr`. `n` must be any integer type.
|
||||
Indexes in an array begin from one.
|
||||
Negative indexes are supported. In this case, it selects the corresponding element numbered from the end. For example, 'arr\[-1\]' is the last item in the array.
|
||||
Negative indexes are supported. In this case, it selects the corresponding element numbered from the end. For example, `arr[-1]` is the last item in the array.
|
||||
|
||||
If the index falls outside of the bounds of an array, it returns some default value (0 for numbers, an empty string for strings, etc.).
|
||||
|
||||
|
@ -1,17 +1,19 @@
|
||||
# Функции по работе с массивами
|
||||
|
||||
|
||||
## empty
|
||||
|
||||
Возвращает 1 для пустого массива, и 0 для непустого массива.
|
||||
Тип результата - UInt8.
|
||||
Функция также работает для строк.
|
||||
|
||||
## notEmpty
|
||||
|
||||
Возвращает 0 для пустого массива, и 1 для непустого массива.
|
||||
Тип результата - UInt8.
|
||||
Функция также работает для строк.
|
||||
|
||||
## length
|
||||
|
||||
Возвращает количество элементов в массиве.
|
||||
Тип результата - UInt64.
|
||||
Функция также работает для строк.
|
||||
@ -25,16 +27,20 @@
|
||||
## emptyArrayDate, emptyArrayDateTime
|
||||
|
||||
## emptyArrayString
|
||||
|
||||
Принимает ноль аргументов и возвращает пустой массив соответствующего типа.
|
||||
|
||||
## emptyArrayToSingle
|
||||
|
||||
Принимает пустой массив и возвращает массив из одного элемента, равного значению по умолчанию.
|
||||
|
||||
## range(N)
|
||||
|
||||
Возвращает массив чисел от 0 до N-1.
|
||||
На всякий случай, если на блок данных, создаются массивы суммарной длины больше 100 000 000 элементов, то кидается исключение.
|
||||
|
||||
## array(x1, ...), оператор \[x1, ...\]
|
||||
|
||||
Создаёт массив из аргументов функции.
|
||||
Аргументы должны быть константами и иметь типы, для которых есть наименьший общий тип. Должен быть передан хотя бы один аргумент, так как иначе непонятно, какого типа создавать массив. То есть, с помощью этой функции невозможно создать пустой массив (для этого используйте функции emptyArray\*, описанные выше).
|
||||
Возвращает результат типа Array(T), где T - наименьший общий тип от переданных аргументов.
|
||||
@ -47,31 +53,32 @@
|
||||
arrayConcat(arrays)
|
||||
```
|
||||
|
||||
**Аргументы**
|
||||
**Параметры**
|
||||
|
||||
- `arrays` - Перечисленные через запятую массивы `[values]`.
|
||||
|
||||
**Пример**
|
||||
|
||||
``` sql
|
||||
```sql
|
||||
SELECT arrayConcat([1, 2], [3, 4], [5, 6]) AS res
|
||||
```
|
||||
|
||||
```
|
||||
┌─res───────────┐
|
||||
│ [1,2,3,4,5,6] │
|
||||
└───────────────┘
|
||||
```
|
||||
|
||||
## arrayElement(arr, n), operator arr[n]
|
||||
|
||||
## arrayElement(arr, n), оператор arr\[n\]
|
||||
Достаёт элемент с индексом n из массива arr.
|
||||
n должен быть любым целочисленным типом.
|
||||
Достаёт элемент с индексом n из массива arr. n должен быть любым целочисленным типом.
|
||||
Индексы в массиве начинаются с единицы.
|
||||
Поддерживаются отрицательные индексы - в этом случае, будет выбран соответствующий по номеру элемент с конца. Например, arr\[-1\] - последний элемент массива.
|
||||
Поддерживаются отрицательные индексы. В этом случае, будет выбран соответствующий по номеру элемент с конца. Например, arr\[-1\] - последний элемент массива.
|
||||
|
||||
Если индекс выходит за границы массива, то возвращается некоторое значение по умолчанию (0 для чисел, пустая строка для строк и т. п.).
|
||||
|
||||
## has(arr, elem)
|
||||
|
||||
Проверяет наличие элемента elem в массиве arr.
|
||||
Возвращает 0, если элемента в массиве нет, или 1, если есть.
|
||||
|
||||
@ -85,13 +92,87 @@ SELECT has([1, 2, NULL], NULL)
|
||||
└─────────────────────────┘
|
||||
```
|
||||
|
||||
## hasAll
|
||||
|
||||
Проверяет, является ли один массив подмножеством другого.
|
||||
|
||||
```
|
||||
hasAll(set, subset)
|
||||
```
|
||||
|
||||
**Параметры**
|
||||
|
||||
- `set` – массив любого типа с набором элементов.
|
||||
- `subset` – массив любого типа со значениями, которые проверяются на вхождение в `set`.
|
||||
|
||||
**Возвращаемые значения**
|
||||
|
||||
- `1`, если `set` содержит все элементы из `subset`.
|
||||
- `0`, в противном случае.
|
||||
|
||||
**Особенности**
|
||||
|
||||
- Пустой массив является подмножеством любого массива.
|
||||
- `NULL` обрабатывается как значение.
|
||||
- Порядок значений в обоих массивах не имеет значения.
|
||||
|
||||
**Примеры**
|
||||
|
||||
`SELECT hasAll([], [])` возвращает 1.
|
||||
|
||||
`SELECT hasAll([1, Null], [Null])` возвращает 1.
|
||||
|
||||
`SELECT hasAll([1.0, 2, 3, 4], [1, 3])` возвращает 1.
|
||||
|
||||
`SELECT hasAll(['a', 'b'], ['a'])` возвращает 1.
|
||||
|
||||
`SELECT hasAll([1], ['a'])` возвращает 0.
|
||||
|
||||
`SELECT hasAll([[1, 2], [3, 4]], [[1, 2], [3, 5]])` возвращает 0.
|
||||
|
||||
## hasAny
|
||||
|
||||
Проверяет, имеют ли два массива хотя бы один общий элемент.
|
||||
|
||||
```
|
||||
hasAny(array1, array2)
|
||||
```
|
||||
|
||||
**Параметры**
|
||||
|
||||
- `array1` – массив любого типа с набором элементов.
|
||||
- `array2` – массив любого типа с набором элементов.
|
||||
|
||||
**Возвращаемые значения**
|
||||
|
||||
- `1`, если `array1` и `array2` имеют хотя бы один одинаковый элемент.
|
||||
- `0`, в противном случае.
|
||||
|
||||
**Особенности**
|
||||
|
||||
- `NULL` обрабатывается как значение.
|
||||
- Порядок значений в обоих массивах не имеет значения.
|
||||
|
||||
**Примеры**
|
||||
|
||||
`SELECT hasAny([1], [])` возвращает `0`.
|
||||
|
||||
`SELECT hasAny([Null], [Null, 1])` возвращает `1`.
|
||||
|
||||
`SELECT hasAny([-128, 1., 512], [1])` возвращает `1`.
|
||||
|
||||
`SELECT hasAny([[1, 2], [3, 4]], ['a', 'c'])` возвращает `0`.
|
||||
|
||||
`SELECT hasAll([[1, 2], [3, 4]], [[1, 2], [1, 2]])` возвращает `1`.
|
||||
|
||||
## indexOf(arr, x)
|
||||
|
||||
Возвращает индекс первого элемента x (начиная с 1), если он есть в массиве, или 0, если его нет.
|
||||
|
||||
Пример:
|
||||
|
||||
```
|
||||
:) select indexOf([1,3,NULL,NULL],NULL)
|
||||
:) SELECT indexOf([1,3,NULL,NULL],NULL)
|
||||
|
||||
SELECT indexOf([1, 3, NULL, NULL], NULL)
|
||||
|
||||
@ -103,9 +184,10 @@ SELECT indexOf([1, 3, NULL, NULL], NULL)
|
||||
Элементы, равные `NULL`, обрабатываются как обычные значения.
|
||||
|
||||
## countEqual(arr, x)
|
||||
|
||||
Возвращает количество элементов массива, равных x. Эквивалентно arrayCount(elem -> elem = x, arr).
|
||||
|
||||
Элементы `NULL` обрабатываются как отдельные значения.
|
||||
`NULL` обрабатывается как значение.
|
||||
|
||||
Пример:
|
||||
|
||||
@ -117,13 +199,13 @@ SELECT countEqual([1, 2, NULL, NULL], NULL)
|
||||
└──────────────────────────────────────┘
|
||||
```
|
||||
|
||||
|
||||
## arrayEnumerate(arr)
|
||||
|
||||
Возвращает массив \[1, 2, 3, ..., length(arr)\]
|
||||
|
||||
Эта функция обычно используется совместно с ARRAY JOIN. Она позволяет, после применения ARRAY JOIN, посчитать что-либо только один раз для каждого массива. Пример:
|
||||
|
||||
``` sql
|
||||
```sql
|
||||
SELECT
|
||||
count() AS Reaches,
|
||||
countIf(num = 1) AS Hits
|
||||
@ -143,7 +225,7 @@ LIMIT 10
|
||||
|
||||
В этом примере, Reaches - число достижений целей (строк, получившихся после применения ARRAY JOIN), а Hits - число хитов (строк, которые были до ARRAY JOIN). В данном случае, тот же результат можно получить проще:
|
||||
|
||||
``` sql
|
||||
```sql
|
||||
SELECT
|
||||
sum(length(GoalsReached)) AS Reaches,
|
||||
count() AS Hits
|
||||
@ -160,13 +242,14 @@ WHERE (CounterID = 160656) AND notEmpty(GoalsReached)
|
||||
Также эта функция может быть использована в функциях высшего порядка. Например, с её помощью можно достать индексы массива для элементов, удовлетворяющих некоторому условию.
|
||||
|
||||
## arrayEnumerateUniq(arr, ...)
|
||||
|
||||
Возвращает массив, такого же размера, как исходный, где для каждого элемента указано, какой он по счету среди элементов с таким же значением.
|
||||
Например: arrayEnumerateUniq(\[10, 20, 10, 30\]) = \[1, 1, 2, 1\].
|
||||
|
||||
Эта функция полезна при использовании ARRAY JOIN и агрегации по элементам массива.
|
||||
Пример:
|
||||
|
||||
``` sql
|
||||
```sql
|
||||
SELECT
|
||||
Goals.ID AS GoalID,
|
||||
sum(Sign) AS Reaches,
|
||||
@ -200,7 +283,7 @@ LIMIT 10
|
||||
|
||||
Функция arrayEnumerateUniq может принимать несколько аргументов - массивов одинаковых размеров. В этом случае, уникальность считается для кортежей элементов на одинаковых позициях всех массивов.
|
||||
|
||||
``` sql
|
||||
```sql
|
||||
SELECT arrayEnumerateUniq([1, 1, 1, 2, 2, 2], [1, 1, 2, 1, 1, 2]) AS res
|
||||
```
|
||||
|
||||
@ -220,15 +303,16 @@ SELECT arrayEnumerateUniq([1, 1, 1, 2, 2, 2], [1, 1, 2, 1, 1, 2]) AS res
|
||||
arrayPopBack(array)
|
||||
```
|
||||
|
||||
**Аргументы**
|
||||
**Параметры**
|
||||
|
||||
- `array` - Массив.
|
||||
|
||||
**Пример**
|
||||
|
||||
``` sql
|
||||
```sql
|
||||
SELECT arrayPopBack([1, 2, 3]) AS res
|
||||
```
|
||||
|
||||
```
|
||||
┌─res───┐
|
||||
│ [1,2] │
|
||||
@ -243,15 +327,16 @@ SELECT arrayPopBack([1, 2, 3]) AS res
|
||||
arrayPopFront(array)
|
||||
```
|
||||
|
||||
**Аргументы**
|
||||
**Параметры**
|
||||
|
||||
- `array` - Массив.
|
||||
|
||||
**Пример**
|
||||
|
||||
``` sql
|
||||
```sql
|
||||
SELECT arrayPopFront([1, 2, 3]) AS res
|
||||
```
|
||||
|
||||
```
|
||||
┌─res───┐
|
||||
│ [2,3] │
|
||||
@ -266,16 +351,17 @@ SELECT arrayPopFront([1, 2, 3]) AS res
|
||||
arrayPushBack(array, single_value)
|
||||
```
|
||||
|
||||
**Аргументы**
|
||||
**Параметры**
|
||||
|
||||
- `array` - Массив.
|
||||
- `single_value` - Одиночное значение. В массив с числам можно добавить только числа, в массив со строками только строки. При добавлении чисел ClickHouse автоматически приводит тип `single_value` к типу данных массива. Подробнее о типах данных в ClickHouse читайте в разделе "[Типы данных](../../data_types/index.md#data_types)". Может быть равно `NULL`. Функция добавит элемент `NULL` в массив, а тип элементов массива преобразует в `Nullable`.
|
||||
|
||||
**Пример**
|
||||
|
||||
``` sql
|
||||
```sql
|
||||
SELECT arrayPushBack(['a'], 'b') AS res
|
||||
```
|
||||
|
||||
```
|
||||
┌─res───────┐
|
||||
│ ['a','b'] │
|
||||
@ -290,16 +376,17 @@ SELECT arrayPushBack(['a'], 'b') AS res
|
||||
arrayPushFront(array, single_value)
|
||||
```
|
||||
|
||||
**Аргументы**
|
||||
**Параметры**
|
||||
|
||||
- `array` - Массив.
|
||||
- `single_value` - Одиночное значение. В массив с числам можно добавить только числа, в массив со строками только строки. При добавлении чисел ClickHouse автоматически приводит тип `single_value` к типу данных массива. Подробнее о типах данных в ClickHouse читайте в разделе "[Типы данных](../../data_types/index.md#data_types)". Может быть равно `NULL`. Функция добавит элемент `NULL` в массив, а тип элементов массива преобразует в `Nullable`.
|
||||
|
||||
**Пример**
|
||||
|
||||
``` sql
|
||||
```sql
|
||||
SELECT arrayPushBack(['b'], 'a') AS res
|
||||
```
|
||||
|
||||
```
|
||||
┌─res───────┐
|
||||
│ ['a','b'] │
|
||||
@ -314,12 +401,12 @@ SELECT arrayPushBack(['b'], 'a') AS res
|
||||
arrayResize(array, size[, extender])
|
||||
```
|
||||
|
||||
**Параметры:**
|
||||
**Параметры**
|
||||
|
||||
- `array` — массив.
|
||||
- `size` — необходимая длина массива.
|
||||
- Если `size` меньше изначального размера массива, то массив обрезается справа.
|
||||
- Если `size` больше изначального размера массива, массив дополняется справа значениями `extender` или значениями по умолчанию для типа данных элементов массива.
|
||||
- Если `size` больше изначального размера массива, массив дополняется справа значениями `extender` или значениями по умолчанию для типа данных элементов массива.
|
||||
- `extender` — значение для дополнения массива. Может быть `NULL`.
|
||||
|
||||
**Возвращаемое значение:**
|
||||
@ -335,6 +422,7 @@ SELECT arrayResize([1], 3)
|
||||
│ [1,0,0] │
|
||||
└─────────────────────┘
|
||||
```
|
||||
|
||||
```
|
||||
SELECT arrayResize([1], 3, NULL)
|
||||
|
||||
@ -351,7 +439,7 @@ SELECT arrayResize([1], 3, NULL)
|
||||
arraySlice(array, offset[, length])
|
||||
```
|
||||
|
||||
**Аргументы**
|
||||
**Параметры**
|
||||
|
||||
- `array` - Массив данных.
|
||||
- `offset` - Отступ от края массива. Положительное значение - отступ слева, отрицательное значение - отступ справа. Отсчет элементов массива начинается с 1.
|
||||
@ -359,9 +447,10 @@ arraySlice(array, offset[, length])
|
||||
|
||||
**Пример**
|
||||
|
||||
``` sql
|
||||
```sql
|
||||
SELECT arraySlice([1, 2, NULL, 4, 5], 2, 3) AS res
|
||||
```
|
||||
|
||||
```
|
||||
┌─res────────┐
|
||||
│ [2,NULL,4] │
|
||||
@ -371,12 +460,14 @@ SELECT arraySlice([1, 2, NULL, 4, 5], 2, 3) AS res
|
||||
Элементы массива равные `NULL` обрабатываются как обычные значения.
|
||||
|
||||
## arrayUniq(arr, ...)
|
||||
|
||||
Если передан один аргумент, считает количество разных элементов в массиве.
|
||||
Если передано несколько аргументов, считает количество разных кортежей из элементов на соответствующих позициях в нескольких массивах.
|
||||
|
||||
Если необходимо получить список уникальных элементов массива, можно воспользоваться arrayReduce('groupUniqArray', arr).
|
||||
|
||||
## arrayJoin(arr)
|
||||
|
||||
Особенная функция. Смотрите раздел ["Функция arrayJoin"](array_join.md#functions_arrayjoin).
|
||||
|
||||
[Оригинальная статья](https://clickhouse.yandex/docs/ru/query_language/functions/array_functions/) <!--hide-->
|
||||
|
Loading…
Reference in New Issue
Block a user