mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-28 18:42:26 +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.
|
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.
|
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
|
```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─┐
|
┌─res─┐
|
||||||
│ 1 │
|
│ 1 │
|
||||||
└─────┘
|
└─────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
Query:
|
||||||
|
|
||||||
SELECT arrayMin(x -> (-x), [1, 2, 4]) AS res
|
```sql
|
||||||
|
SELECT arrayMin(x -> (-x), [1, 2, 4]) AS res;
|
||||||
|
```
|
||||||
|
|
||||||
|
Result:
|
||||||
|
|
||||||
|
```text
|
||||||
┌─res─┐
|
┌─res─┐
|
||||||
│ -4 │
|
│ -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.
|
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
|
```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─┐
|
┌─res─┐
|
||||||
│ 4 │
|
│ 4 │
|
||||||
└─────┘
|
└─────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
Query:
|
||||||
|
|
||||||
SELECT arrayMax(x -> (-x), [1, 2, 4]) AS res
|
```sql
|
||||||
|
SELECT arrayMax(x -> (-x), [1, 2, 4]) AS res;
|
||||||
|
```
|
||||||
|
|
||||||
|
Result:
|
||||||
|
|
||||||
|
```text
|
||||||
┌─res─┐
|
┌─res─┐
|
||||||
│ -1 │
|
│ -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.
|
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
|
```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─┐
|
┌─res─┐
|
||||||
│ 5 │
|
│ 5 │
|
||||||
└─────┘
|
└─────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
Query:
|
||||||
|
|
||||||
SELECT arraySum(x -> x*x, [2, 3]) AS res
|
```sql
|
||||||
|
SELECT arraySum(x -> x*x, [2, 3]) AS res;
|
||||||
|
```
|
||||||
|
|
||||||
|
Result:
|
||||||
|
|
||||||
|
```text
|
||||||
┌─res─┐
|
┌─res─┐
|
||||||
│ 13 │
|
│ 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.
|
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}
|
## 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.
|
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) — в качестве первого аргумента ей нужно передать лямбда-функцию, и этот аргумент не может быть опущен.
|
Функция `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}
|
## arrayCumSum(\[func,\] arr1, …) {#arraycumsumfunc-arr1}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user