2020-07-29 06:49:57 +00:00
|
|
|
|
---
|
2022-04-09 13:29:05 +00:00
|
|
|
|
sidebar_position: 113
|
2020-07-29 06:49:57 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# groupArrayMovingSum {#agg_function-grouparraymovingsum}
|
|
|
|
|
|
|
|
|
|
Вычисляет скользящую сумму входных значений.
|
|
|
|
|
|
|
|
|
|
``` sql
|
|
|
|
|
groupArrayMovingSum(numbers_for_summing)
|
|
|
|
|
groupArrayMovingSum(window_size)(numbers_for_summing)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Функция может принимать размер окна в качестве параметра. Если окно не указано, то функция использует размер окна, равный количеству строк в столбце.
|
|
|
|
|
|
2021-03-13 18:18:45 +00:00
|
|
|
|
**Аргументы**
|
2020-07-29 06:49:57 +00:00
|
|
|
|
|
|
|
|
|
- `numbers_for_summing` — [выражение](../../syntax.md#syntax-expressions), возвращающее значение числового типа.
|
|
|
|
|
- `window_size` — размер окна.
|
|
|
|
|
|
|
|
|
|
**Возвращаемые значения**
|
|
|
|
|
|
|
|
|
|
- Массив того же размера и типа, что и входные данные.
|
|
|
|
|
|
|
|
|
|
**Пример**
|
|
|
|
|
|
|
|
|
|
Таблица с исходными данными:
|
|
|
|
|
|
|
|
|
|
``` sql
|
|
|
|
|
CREATE TABLE t
|
|
|
|
|
(
|
|
|
|
|
`int` UInt8,
|
|
|
|
|
`float` Float32,
|
|
|
|
|
`dec` Decimal32(2)
|
|
|
|
|
)
|
|
|
|
|
ENGINE = TinyLog
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
``` text
|
|
|
|
|
┌─int─┬─float─┬──dec─┐
|
|
|
|
|
│ 1 │ 1.1 │ 1.10 │
|
|
|
|
|
│ 2 │ 2.2 │ 2.20 │
|
|
|
|
|
│ 4 │ 4.4 │ 4.40 │
|
|
|
|
|
│ 7 │ 7.77 │ 7.77 │
|
|
|
|
|
└─────┴───────┴──────┘
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Запросы:
|
|
|
|
|
|
|
|
|
|
``` sql
|
|
|
|
|
SELECT
|
|
|
|
|
groupArrayMovingSum(int) AS I,
|
|
|
|
|
groupArrayMovingSum(float) AS F,
|
|
|
|
|
groupArrayMovingSum(dec) AS D
|
|
|
|
|
FROM t
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
``` text
|
|
|
|
|
┌─I──────────┬─F───────────────────────────────┬─D──────────────────────┐
|
|
|
|
|
│ [1,3,7,14] │ [1.1,3.3000002,7.7000003,15.47] │ [1.10,3.30,7.70,15.47] │
|
|
|
|
|
└────────────┴─────────────────────────────────┴────────────────────────┘
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
``` sql
|
|
|
|
|
SELECT
|
|
|
|
|
groupArrayMovingSum(2)(int) AS I,
|
|
|
|
|
groupArrayMovingSum(2)(float) AS F,
|
|
|
|
|
groupArrayMovingSum(2)(dec) AS D
|
|
|
|
|
FROM t
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
``` text
|
|
|
|
|
┌─I──────────┬─F───────────────────────────────┬─D──────────────────────┐
|
|
|
|
|
│ [1,3,6,11] │ [1.1,3.3000002,6.6000004,12.17] │ [1.10,3.30,6.60,12.17] │
|
|
|
|
|
└────────────┴─────────────────────────────────┴────────────────────────┘
|
|
|
|
|
```
|
2020-07-30 12:49:19 +00:00
|
|
|
|
|