enbaskakova-DOCSUP-652 (#101)

* "docs(orNull&orDefault): Functions 'orNull&orDefault' have been edited"

* "docs(orNull&orDefault): Functions 'orNull&orDefault' have been edited"

* "docs(orNull&orDefault): Functions 'orNull&orDefault' have been edited"

* Update docs/en/sql_reference/aggregate_functions/combinators.md

Co-Authored-By: BayoNet <da-daos@yandex.ru>

* Update docs/en/sql_reference/aggregate_functions/combinators.md

Co-Authored-By: BayoNet <da-daos@yandex.ru>

* Update docs/en/sql_reference/aggregate_functions/combinators.md

Co-Authored-By: BayoNet <da-daos@yandex.ru>

* Update docs/en/sql_reference/aggregate_functions/combinators.md

Co-Authored-By: BayoNet <da-daos@yandex.ru>

* Update docs/en/sql_reference/aggregate_functions/combinators.md

Co-Authored-By: BayoNet <da-daos@yandex.ru>

* "docs(orNull&orDefault): Functions 'orNull&orDefault' have been edited"

* "docs(orNull&orDefault): Functions 'orNull&orDefault' have been edited"

* "docs(orNull&orDefault): Functions 'orNull&orDefault' have been edited"

Co-authored-by: elenbaskakova <elenbaskakova@yandex-team.ru>
Co-authored-by: BayoNet <da-daos@yandex.ru>
This commit is contained in:
elenaspb2019 2020-05-03 21:56:38 +03:00 committed by GitHub
parent 886e54f188
commit 639fee7610
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 206 additions and 8 deletions

View File

@ -51,33 +51,108 @@ Converts an aggregate function for tables into an aggregate function for arrays
## -OrDefault {#agg-functions-combinator-ordefault}
Fills the default value of the aggregate functions return type if there is nothing to aggregate.
Changes behaviour of an aggregate function.
If an aggregate function doesn't have input values, with this combinator it returns the default value for its return data type. Applies to the aggregate functions that can take empty input data.
`-OrDefault` can be combined with other combinators.
**Syntax**
``` sql
<aggFunction>OrDefault(x)
```
**Parameters**
- `x` — Aggregate function parameters.
**Returned values**
Returns the default value of an aggregate functions return type if there is nothing to aggregate.
Type depends on the aggregate function used.
**Example**
Query:
``` sql
SELECT avg(number), avgOrDefault(number) FROM numbers(0)
```
Result:
``` text
┌─avg(number)─┬─avgOrDefault(number)─┐
│ nan │ 0 │
└─────────────┴──────────────────────┘
```
## -OrNull {#agg-functions-combinator-ornull}
Also `-OrDefault` can be used with a few combinators. It is useful when the aggregate function does not accept the empty input.
Fills `null` if there is nothing to aggregate. The return column will be nullable.
Query:
``` sql
SELECT avg(number), avgOrNull(number) FROM numbers(0)
SELECT avgOrDefaultIf(x, x > 10)
FROM
(
SELECT toDecimal32(1.23, 2) AS x
)
```
Result:
``` text
┌─avg(number)─┬─avgOrNull(number)─┐
│ nan │ ᴺᵁᴸᴸ │
└─────────────┴───────────────────┘
┌─avgOrDefaultIf(x, greater(x, 10))─┐
0.00
└───────────────────────────────────┘
```
-OrDefault and -OrNull can be combined with other combinators. It is useful when the aggregate function does not accept the empty input.
## -OrNull {#agg-functions-combinator-ornull}
Changes behaviour of an aggregate function.
This combinator replaces returned value with nullable one, if the aggregate function does not have values to calculate. Works with different aggregate functions.
`-OrNull` can be combined with other combinators.
**Syntax**
``` sql
<aggFunction>OrNull(x)
```
**Parameters**
- `x` — Aggregate function parameters.
**Returned values**
Returns the `Null` value of an aggregate functions return type if there is nothing to aggregate.
Type: [Nullable](../data_types/nullable.md).
**Example**
Add `-orNull` to the end of aggregate function.
Query:
``` sql
SELECT sumOrNull(number) FROM numbers(10) WHERE number > 10
```
Result:
``` text
┌─sumOrNull(number)─┐
│ ᴺᵁᴸᴸ │
└───────────────────┘
```
Also `-OrNull` can be used with a few combinators. It is useful when the aggregate function does not accept the empty input.
Query:
``` sql
SELECT avgOrNullIf(x, x > 10)
@ -87,6 +162,8 @@ FROM
)
```
Result:
``` text
┌─avgOrNullIf(x, greater(x, 10))─┐
│ ᴺᵁᴸᴸ │

View File

@ -45,6 +45,127 @@
Преобразует агрегатную функцию для таблиц в агрегатную функцию для массивов, которая применяет агрегирование для соответствующих элементов массивов и возвращает массив результатов. Например, `sumForEach` для массивов `[1, 2]`, `[3, 4, 5]` и `[6, 7]` даст результат `[10, 13, 5]`, сложив соответственные элементы массивов.
## -OrDefault {#agg-functions-combinator-ordefault}
Изменяет поведение агрегатной функции.
Если на вход агрегатной функции передан пустой набор данных, то с помощью комбинатора `-OrDefault` функция возвращает значение по умолчанию для соответствующего типа данных. Комбинатор применяется к агрегатным функциям, которые могут принимать пустые входные данные.
`-OrDefault` можно использовать с другими комбинаторами.
**Синтаксис**
``` sql
<aggFunction>OrDefault(x)
```
**Параметры**
- `x` — Параметры агрегатной функции.
**Возращаемые зачения**
Возвращает значение по умолчанию для соответствующего типа агрегатной функции, если агрегировать нечего.
Тип данных зависит от используемой агрегатной функции.
**Пример**
Запрос:
``` sql
SELECT avg(number), avgOrDefault(number) FROM numbers(0)
```
Результат:
``` text
┌─avg(number)─┬─avgOrDefault(number)─┐
│ nan │ 0 │
└─────────────┴──────────────────────┘
```
Также `-OrDefault` может использоваться с другими комбинаторами. Это полезно, когда агрегатная функция не принимает пустые входные данные.
Запрос:
``` sql
SELECT avgOrDefaultIf(x, x > 10)
FROM
(
SELECT toDecimal32(1.23, 2) AS x
)
```
Результат:
``` text
┌─avgOrDefaultIf(x, greater(x, 10))─┐
│ 0.00 │
└───────────────────────────────────┘
```
## -OrNull {#agg-functions-combinator-ornull}
Изменяет поведение агрегатной функции.
Этот комбинатор заменяет возвращаемое значение на `Null`, если на вход агрегатной функции передан пустой набор данных. Комбинатор работает с различными агрегатными функциями.
`-OrNull` может использоваться с другими комбинаторами.
**Синтаксис**
``` sql
<aggFunction>OrNull(x)
```
**Параметры**
- `x` — Параметры агрегатной функции.
**Возвращаемые значения**
Возвращает значение `Null` для соответствующего типа агрегатной функции, если агрегировать нечего.
Тип: [Nullable](../data_types/nullable.md).
**Пример**
Добавьте `-orNull` в конец агрегатной функции.
Запрос:
``` sql
SELECT sumOrNull(number) FROM numbers(10) WHERE number > 10
```
Результат:
``` text
┌─sumOrNull(number)─┐
│ ᴺᵁᴸᴸ │
└───────────────────┘
```
Также `-OrNull` может использоваться с другими комбинаторами. Это полезно, когда агрегатная функция не принимает пустые входные данные.
Запрос:
``` sql
SELECT avgOrNullIf(x, x > 10)
FROM
(
SELECT toDecimal32(1.23, 2) AS x
)
```
Результат:
``` text
┌─avgOrNullIf(x, greater(x, 10))─┐
│ ᴺᵁᴸᴸ │
└────────────────────────────────┘
```
## -Resample {#agg-functions-combinator-resample}
Позволяет поделить данные на группы, а затем по-отдельности агрегирует данные для этих групп. Группы образуются разбиением значений одного из столбцов на интервалы.