Fix translation for arrayFill, arrayReverseFill, arraySplit, arrayReverseSplit functions. #22377

This commit is contained in:
Nickolay Yastrebov 2021-04-02 13:23:11 +03:00
parent 150c53ee3b
commit 291c82e3fe
2 changed files with 92 additions and 20 deletions

View File

@ -245,7 +245,7 @@ Elements set to `NULL` are handled as normal values.
Returns the number of elements in the arr array for which func returns something other than 0. If func is not specified, it returns the number of non-zero elements in the array.
Note that the `arrayCount` is a [higher-order function](../../sql-reference/functions/index.md#higher-order-functions). You can pass a lambda function to it as the first argument.
Note that the `arrayCount` is a [higher-order function](../../sql-reference/functions/index.md#higher-order-functions). You can pass a lambda function to it as the first argument.
## countEqual(arr, x) {#countequalarr-x}
@ -1229,7 +1229,7 @@ SELECT arrayReverseFill(x -> not isNull(x), [1, null, 3, 11, 12, null, null, 5,
└────────────────────────────────────┘
```
Note that the `arrayReverseFilter` is a [higher-order function](../../sql-reference/functions/index.md#higher-order-functions). You must pass a lambda function to it as the first argument, and it cant be omitted.
Note that the `arrayReverseFill` is a [higher-order function](../../sql-reference/functions/index.md#higher-order-functions). You must pass a lambda function to it as the first argument, and it cant be omitted.
## arraySplit(func, arr1, …) {#array-split}
@ -1293,7 +1293,7 @@ Note that the `arrayFirstIndex` is a [higher-order function](../../sql-reference
## arrayMin {#array-min}
Returns the minimum of elements in the source array.
Returns the minimum of elements in the source array.
If the `func` function is specified, returns the mininum of elements converted by this function.
@ -1312,9 +1312,9 @@ arrayMin([func,] arr)
**Returned value**
- The minimum of function values (or the array minimum).
- The minimum of function values (or the array minimum).
Type: if `func` is specified, matches `func` return value type, else matches the array elements type.
Type: if `func` is specified, matches `func` return value type, else matches the array elements type.
**Examples**
@ -1348,7 +1348,7 @@ Result:
## arrayMax {#array-max}
Returns the maximum of elements in the source array.
Returns the maximum of elements in the source array.
If the `func` function is specified, returns the maximum of elements converted by this function.
@ -1367,9 +1367,9 @@ arrayMax([func,] arr)
**Returned value**
- The maximum of function values (or the array maximum).
- The maximum of function values (or the array maximum).
Type: if `func` is specified, matches `func` return value type, else matches the array elements type.
Type: if `func` is specified, matches `func` return value type, else matches the array elements type.
**Examples**
@ -1403,7 +1403,7 @@ Result:
## arraySum {#array-sum}
Returns the sum of elements in the source array.
Returns the sum of elements in the source array.
If the `func` function is specified, returns the sum of elements converted by this function.
@ -1418,7 +1418,7 @@ arraySum([func,] arr)
**Arguments**
- `func` — Function. [Expression](../../sql-reference/data-types/special-data-types/expression.md).
- `arr` — Array. [Array](../../sql-reference/data-types/array.md).
- `arr` — Array. [Array](../../sql-reference/data-types/array.md).
**Returned value**
@ -1458,7 +1458,7 @@ Result:
## arrayAvg {#array-avg}
Returns the average of elements in the source array.
Returns the average of elements in the source array.
If the `func` function is specified, returns the average of elements converted by this function.
@ -1473,7 +1473,7 @@ arrayAvg([func,] arr)
**Arguments**
- `func` — Function. [Expression](../../sql-reference/data-types/special-data-types/expression.md).
- `arr` — Array. [Array](../../sql-reference/data-types/array.md).
- `arr` — Array. [Array](../../sql-reference/data-types/array.md).
**Returned value**

View File

@ -1111,6 +1111,78 @@ SELECT
Функция `arrayFilter` является [функцией высшего порядка](../../sql-reference/functions/index.md#higher-order-functions) — в качестве первого аргумента ей нужно передать лямбда-функцию, и этот аргумент не может быть опущен.
## arrayFill(func, arr1, …) {#array-fill}
Перебирает `arr1` от первого элемента к последнему и заменяет `arr1[i]` на `arr1[i - 1]`, если `func` вернула 0. Первый элемент `arr1` остаётся неизменным.
Примеры:
``` sql
SELECT arrayFill(x -> not isNull(x), [1, null, 3, 11, 12, null, null, 5, 6, 14, null, null]) AS res
```
``` text
┌─res──────────────────────────────┐
│ [1,1,3,11,12,12,12,5,6,14,14,14] │
└──────────────────────────────────┘
```
Функция `arrayFill` является [функцией высшего порядка](../../sql-reference/functions/index.md#higher-order-functions) — в качестве первого аргумента ей нужно передать лямбда-функцию, и этот аргумент не может быть опущен.
## arrayReverseFill(func, arr1, …) {#array-reverse-fill}
Перебирает `arr1` от последнего элемента к первому и заменяет `arr1[i]` на `arr1[i + 1]`, если `func` вернула 0. Последний элемент `arr1` остаётся неизменным.
Примеры:
``` sql
SELECT arrayReverseFill(x -> not isNull(x), [1, null, 3, 11, 12, null, null, 5, 6, 14, null, null]) AS res
```
``` text
┌─res────────────────────────────────┐
│ [1,3,3,11,12,5,5,5,6,14,NULL,NULL] │
└────────────────────────────────────┘
```
Функция `arrayReverseFill` является [функцией высшего порядка](../../sql-reference/functions/index.md#higher-order-functions) — в качестве первого аргумента ей нужно передать лямбда-функцию, и этот аргумент не может быть опущен.
## arraySplit(func, arr1, …) {#array-split}
Разделяет массив `arr1` на несколько. Если `func` возвращает не 0, то массив разделяется, а элемент помещается в левую часть. Массив не разбивается по первому элементу.
Примеры:
``` sql
SELECT arraySplit((x, y) -> y, [1, 2, 3, 4, 5], [1, 0, 0, 1, 0]) AS res
```
``` text
┌─res─────────────┐
│ [[1,2,3],[4,5]] │
└─────────────────┘
```
Функция `arraySplit` является [функцией высшего порядка](../../sql-reference/functions/index.md#higher-order-functions) — в качестве первого аргумента ей нужно передать лямбда-функцию, и этот аргумент не может быть опущен.
## arrayReverseSplit(func, arr1, …) {#array-reverse-split}
Разделяет массив `arr1` на несколько. Если `func` возвращает не 0, то массив разделяется, а элемент помещается в правую часть. Массив не разбивается по последнему элементу.
Примеры:
``` sql
SELECT arrayReverseSplit((x, y) -> y, [1, 2, 3, 4, 5], [1, 0, 0, 1, 0]) AS res
```
``` text
┌─res───────────────┐
│ [[1],[2,3,4],[5]] │
└───────────────────┘
```
Функция `arrayReverseSplit` является [функцией высшего порядка](../../sql-reference/functions/index.md#higher-order-functions) — в качестве первого аргумента ей нужно передать лямбда-функцию, и этот аргумент не может быть опущен.
## arrayExists(\[func,\] arr1, …) {#arrayexistsfunc-arr1}
Возвращает 1, если существует хотя бы один элемент массива `arr`, для которого функция func возвращает не 0. Иначе возвращает 0.
@ -1137,7 +1209,7 @@ SELECT
## arrayMin {#array-min}
Возвращает значение минимального элемента в исходном массиве.
Возвращает значение минимального элемента в исходном массиве.
Если передана функция `func`, возвращается минимум из элементов массива, преобразованных этой функцией.
@ -1192,7 +1264,7 @@ SELECT arrayMin(x -> (-x), [1, 2, 4]) AS res;
## arrayMax {#array-max}
Возвращает значение максимального элемента в исходном массиве.
Возвращает значение максимального элемента в исходном массиве.
Если передана функция `func`, возвращается максимум из элементов массива, преобразованных этой функцией.
@ -1247,7 +1319,7 @@ SELECT arrayMax(x -> (-x), [1, 2, 4]) AS res;
## arraySum {#array-sum}
Возвращает сумму элементов в исходном массиве.
Возвращает сумму элементов в исходном массиве.
Если передана функция `func`, возвращается сумма элементов массива, преобразованных этой функцией.
@ -1262,7 +1334,7 @@ arraySum([func,] arr)
**Аргументы**
- `func` — функция. [Expression](../../sql-reference/data-types/special-data-types/expression.md).
- `arr` — массив. [Array](../../sql-reference/data-types/array.md).
- `arr` — массив. [Array](../../sql-reference/data-types/array.md).
**Возвращаемое значение**
@ -1302,7 +1374,7 @@ SELECT arraySum(x -> x*x, [2, 3]) AS res;
## arrayAvg {#array-avg}
Возвращает среднее значение элементов в исходном массиве.
Возвращает среднее значение элементов в исходном массиве.
Если передана функция `func`, возвращается среднее значение элементов массива, преобразованных этой функцией.
@ -1317,7 +1389,7 @@ arrayAvg([func,] arr)
**Аргументы**
- `func` — функция. [Expression](../../sql-reference/data-types/special-data-types/expression.md).
- `arr` — массив. [Array](../../sql-reference/data-types/array.md).
- `arr` — массив. [Array](../../sql-reference/data-types/array.md).
**Возвращаемое значение**
@ -1355,7 +1427,7 @@ SELECT arrayAvg(x -> (x * x), [2, 4]) AS res;
└─────┘
```
**Синтаксис**
**Синтаксис**
``` sql
arraySum(arr)
@ -1367,7 +1439,7 @@ arraySum(arr)
Тип: [Int](../../sql-reference/data-types/int-uint.md) или [Float](../../sql-reference/data-types/float.md).
**Аргументы**
**Аргументы**
- `arr` — [массив](../../sql-reference/data-types/array.md).