mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-24 16:42:05 +00:00
Merge pull request #19792 from gyuton/gyuton-DOCSUP-5909-Document_array_aggregation_functions
DOCSUP-5909: Documented array aggregation functions
This commit is contained in:
commit
c92d468b6f
@ -1288,73 +1288,226 @@ Returns the index of the first element in the `arr1` array for which `func` retu
|
||||
|
||||
Note that the `arrayFirstIndex` 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 can’t be omitted.
|
||||
|
||||
## arrayMin(\[func,\] arr1, …) {#array-min}
|
||||
## arrayMin {#array-min}
|
||||
|
||||
Returns the min of the `func` values. If the function is omitted, it just returns the min of the array elements.
|
||||
Returns the minimum of elements in the source array.
|
||||
|
||||
If the `func` function is specified, returns the mininum of elements converted by this function.
|
||||
|
||||
Note that the `arrayMin` 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.
|
||||
|
||||
Examples:
|
||||
**Syntax**
|
||||
|
||||
```sql
|
||||
SELECT arrayMin([1, 2, 4]) AS res
|
||||
arrayMin([func,] arr)
|
||||
```
|
||||
|
||||
**Parameters**
|
||||
|
||||
- `func` — Function. [Expression](../../sql-reference/data-types/special-data-types/expression.md).
|
||||
- `arr` — Array. [Array](../../sql-reference/data-types/array.md).
|
||||
|
||||
**Returned value**
|
||||
|
||||
- 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.
|
||||
|
||||
**Examples**
|
||||
|
||||
Query:
|
||||
|
||||
```sql
|
||||
SELECT arrayMin([1, 2, 4]) AS res;
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ 1 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
Query:
|
||||
|
||||
SELECT arrayMin(x -> (-x), [1, 2, 4]) AS res
|
||||
```sql
|
||||
SELECT arrayMin(x -> (-x), [1, 2, 4]) AS res;
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ -4 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
## arrayMax(\[func,\] arr1, …) {#array-max}
|
||||
## arrayMax {#array-max}
|
||||
|
||||
Returns the max of the `func` values. If the function is omitted, it just returns the max of the array elements.
|
||||
Returns the maximum of elements in the source array.
|
||||
|
||||
If the `func` function is specified, returns the maximum of elements converted by this function.
|
||||
|
||||
Note that the `arrayMax` 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.
|
||||
|
||||
Examples:
|
||||
**Syntax**
|
||||
|
||||
```sql
|
||||
SELECT arrayMax([1, 2, 4]) AS res
|
||||
arrayMax([func,] arr)
|
||||
```
|
||||
|
||||
**Parameters**
|
||||
|
||||
- `func` — Function. [Expression](../../sql-reference/data-types/special-data-types/expression.md).
|
||||
- `arr` — Array. [Array](../../sql-reference/data-types/array.md).
|
||||
|
||||
**Returned value**
|
||||
|
||||
- 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.
|
||||
|
||||
**Examples**
|
||||
|
||||
Query:
|
||||
|
||||
```sql
|
||||
SELECT arrayMax([1, 2, 4]) AS res;
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ 4 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
Query:
|
||||
|
||||
SELECT arrayMax(x -> (-x), [1, 2, 4]) AS res
|
||||
```sql
|
||||
SELECT arrayMax(x -> (-x), [1, 2, 4]) AS res;
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ -1 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
## arraySum(\[func,\] arr1, …) {#array-sum}
|
||||
## arraySum {#array-sum}
|
||||
|
||||
Returns the sum of the `func` values. If the function is omitted, it just returns the sum of the array elements.
|
||||
Returns the sum of elements in the source array.
|
||||
|
||||
If the `func` function is specified, returns the sum of elements converted by this function.
|
||||
|
||||
Note that the `arraySum` 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.
|
||||
|
||||
Examples:
|
||||
**Syntax**
|
||||
|
||||
```sql
|
||||
SELECT arraySum([2,3]) AS res
|
||||
arraySum([func,] arr)
|
||||
```
|
||||
|
||||
**Parameters**
|
||||
|
||||
- `func` — Function. [Expression](../../sql-reference/data-types/special-data-types/expression.md).
|
||||
- `arr` — Array. [Array](../../sql-reference/data-types/array.md).
|
||||
|
||||
**Returned value**
|
||||
|
||||
- The sum of the function values (or the array sum).
|
||||
|
||||
Type: for decimal numbers in source array (or for converted values, if `func` is specified) — [Decimal128](../../sql-reference/data-types/decimal.md), for floating point numbers — [Float64](../../sql-reference/data-types/float.md), for numeric unsigned — [UInt64](../../sql-reference/data-types/int-uint.md), and for numeric signed — [Int64](../../sql-reference/data-types/int-uint.md).
|
||||
|
||||
**Examples**
|
||||
|
||||
Query:
|
||||
|
||||
```sql
|
||||
SELECT arraySum([2, 3]) AS res;
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ 5 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
Query:
|
||||
|
||||
SELECT arraySum(x -> x*x, [2, 3]) AS res
|
||||
```sql
|
||||
SELECT arraySum(x -> x*x, [2, 3]) AS res;
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ 13 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
## arrayAvg {#array-avg}
|
||||
|
||||
## arrayAvg(\[func,\] arr1, …) {#array-avg}
|
||||
Returns the average of elements in the source array.
|
||||
|
||||
Returns the average of the `func` values. If the function is omitted, it just returns the average of the array elements.
|
||||
If the `func` function is specified, returns the average of elements converted by this function.
|
||||
|
||||
Note that the `arrayAvg` 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.
|
||||
|
||||
**Syntax**
|
||||
|
||||
```sql
|
||||
arrayAvg([func,] arr)
|
||||
```
|
||||
|
||||
**Parameters**
|
||||
|
||||
- `func` — Function. [Expression](../../sql-reference/data-types/special-data-types/expression.md).
|
||||
- `arr` — Array. [Array](../../sql-reference/data-types/array.md).
|
||||
|
||||
**Returned value**
|
||||
|
||||
- The average of function values (or the array average).
|
||||
|
||||
Type: [Float64](../../sql-reference/data-types/float.md).
|
||||
|
||||
**Examples**
|
||||
|
||||
Query:
|
||||
|
||||
```sql
|
||||
SELECT arrayAvg([1, 2, 4]) AS res;
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
┌────────────────res─┐
|
||||
│ 2.3333333333333335 │
|
||||
└────────────────────┘
|
||||
```
|
||||
|
||||
Query:
|
||||
|
||||
```sql
|
||||
SELECT arrayAvg(x -> (x * x), [2, 4]) AS res;
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ 10 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
## arrayCumSum(\[func,\] arr1, …) {#arraycumsumfunc-arr1}
|
||||
|
||||
Returns an array of partial sums of elements in the source array (a running sum). If the `func` function is specified, then the values of the array elements are converted by this function before summing.
|
||||
|
@ -1135,11 +1135,225 @@ SELECT
|
||||
|
||||
Функция `arrayFirstIndex` является [функцией высшего порядка](../../sql-reference/functions/index.md#higher-order-functions) — в качестве первого аргумента ей нужно передать лямбда-функцию, и этот аргумент не может быть опущен.
|
||||
|
||||
## arraySum(\[func,\] arr1, …) {#array-sum}
|
||||
## arrayMin {#array-min}
|
||||
|
||||
Возвращает сумму значений функции `func`. Если функция не указана - просто возвращает сумму элементов массива.
|
||||
Возвращает значение минимального элемента в исходном массиве.
|
||||
|
||||
Функция `arraySum` является [функцией высшего порядка](../../sql-reference/functions/index.md#higher-order-functions) - в качестве первого аргумента ей можно передать лямбда-функцию.
|
||||
Если передана функция `func`, возвращается минимум из элементов массива, преобразованных этой функцией.
|
||||
|
||||
Функция `arrayMin` является [функцией высшего порядка](../../sql-reference/functions/index.md#higher-order-functions) — в качестве первого аргумента ей можно передать лямбда-функцию.
|
||||
|
||||
**Синтаксис**
|
||||
|
||||
```sql
|
||||
arrayMin([func,] arr)
|
||||
```
|
||||
|
||||
**Параметры**
|
||||
|
||||
- `func` — функция. [Expression](../../sql-reference/data-types/special-data-types/expression.md).
|
||||
- `arr` — массив. [Array](../../sql-reference/data-types/array.md).
|
||||
|
||||
**Возвращаемое значение**
|
||||
|
||||
- Минимальное значение функции (или минимальный элемент массива).
|
||||
|
||||
Тип: если передана `func`, соответствует типу ее возвращаемого значения, иначе соответствует типу элементов массива.
|
||||
|
||||
**Примеры**
|
||||
|
||||
Запрос:
|
||||
|
||||
```sql
|
||||
SELECT arrayMin([1, 2, 4]) AS res;
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ 1 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
Запрос:
|
||||
|
||||
```sql
|
||||
SELECT arrayMin(x -> (-x), [1, 2, 4]) AS res;
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ -4 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
## arrayMax {#array-max}
|
||||
|
||||
Возвращает значение максимального элемента в исходном массиве.
|
||||
|
||||
Если передана функция `func`, возвращается максимум из элементов массива, преобразованных этой функцией.
|
||||
|
||||
Функция `arrayMax` является [функцией высшего порядка](../../sql-reference/functions/index.md#higher-order-functions) — в качестве первого аргумента ей можно передать лямбда-функцию.
|
||||
|
||||
**Синтаксис**
|
||||
|
||||
```sql
|
||||
arrayMax([func,] arr)
|
||||
```
|
||||
|
||||
**Параметры**
|
||||
|
||||
- `func` — функция. [Expression](../../sql-reference/data-types/special-data-types/expression.md).
|
||||
- `arr` — массив. [Array](../../sql-reference/data-types/array.md).
|
||||
|
||||
**Возвращаемое значение**
|
||||
|
||||
- Максимальное значение функции (или максимальный элемент массива).
|
||||
|
||||
Тип: если передана `func`, соответствует типу ее возвращаемого значения, иначе соответствует типу элементов массива.
|
||||
|
||||
**Примеры**
|
||||
|
||||
Запрос:
|
||||
|
||||
```sql
|
||||
SELECT arrayMax([1, 2, 4]) AS res;
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ 4 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
Запрос:
|
||||
|
||||
```sql
|
||||
SELECT arrayMax(x -> (-x), [1, 2, 4]) AS res;
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ -1 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
## arraySum {#array-sum}
|
||||
|
||||
Возвращает сумму элементов в исходном массиве.
|
||||
|
||||
Если передана функция `func`, возвращается сумма элементов массива, преобразованных этой функцией.
|
||||
|
||||
Функция `arraySum` является [функцией высшего порядка](../../sql-reference/functions/index.md#higher-order-functions) — в качестве первого аргумента ей можно передать лямбда-функцию.
|
||||
|
||||
**Синтаксис**
|
||||
|
||||
```sql
|
||||
arraySum([func,] arr)
|
||||
```
|
||||
|
||||
**Параметры**
|
||||
|
||||
- `func` — функция. [Expression](../../sql-reference/data-types/special-data-types/expression.md).
|
||||
- `arr` — массив. [Array](../../sql-reference/data-types/array.md).
|
||||
|
||||
**Возвращаемое значение**
|
||||
|
||||
- Сумма значений функции (или сумма элементов массива).
|
||||
|
||||
Тип: для Decimal чисел в исходном массиве (если функция `func` была передана, то для чисел, преобразованных ею) — [Decimal128](../../sql-reference/data-types/decimal.md), для чисел с плавающей точкой — [Float64](../../sql-reference/data-types/float.md), для беззнаковых целых чисел — [UInt64](../../sql-reference/data-types/int-uint.md), для целых чисел со знаком — [Int64](../../sql-reference/data-types/int-uint.md).
|
||||
|
||||
**Примеры**
|
||||
|
||||
Запрос:
|
||||
|
||||
```sql
|
||||
SELECT arraySum([2, 3]) AS res;
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ 5 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
Запрос:
|
||||
|
||||
```sql
|
||||
SELECT arraySum(x -> x*x, [2, 3]) AS res;
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ 13 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
## arrayAvg {#array-avg}
|
||||
|
||||
Возвращает среднее значение элементов в исходном массиве.
|
||||
|
||||
Если передана функция `func`, возвращается среднее значение элементов массива, преобразованных этой функцией.
|
||||
|
||||
Функция `arrayAvg` является [функцией высшего порядка](../../sql-reference/functions/index.md#higher-order-functions) — в качестве первого аргумента ей можно передать лямбда-функцию.
|
||||
|
||||
**Синтаксис**
|
||||
|
||||
```sql
|
||||
arrayAvg([func,] arr)
|
||||
```
|
||||
|
||||
**Параметры**
|
||||
|
||||
- `func` — функция. [Expression](../../sql-reference/data-types/special-data-types/expression.md).
|
||||
- `arr` — массив. [Array](../../sql-reference/data-types/array.md).
|
||||
|
||||
**Возвращаемое значение**
|
||||
|
||||
- Среднее значение функции (или среднее значение элементов массива).
|
||||
|
||||
Тип: [Float64](../../sql-reference/data-types/float.md).
|
||||
|
||||
**Примеры**
|
||||
|
||||
Запрос:
|
||||
|
||||
```sql
|
||||
SELECT arrayAvg([1, 2, 4]) AS res;
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
┌────────────────res─┐
|
||||
│ 2.3333333333333335 │
|
||||
└────────────────────┘
|
||||
```
|
||||
|
||||
Запрос:
|
||||
|
||||
```sql
|
||||
SELECT arrayAvg(x -> (x * x), [2, 4]) AS res;
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
┌─res─┐
|
||||
│ 10 │
|
||||
└─────┘
|
||||
```
|
||||
|
||||
## arrayCumSum(\[func,\] arr1, …) {#arraycumsumfunc-arr1}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user