Introducido en: v20.1.0
Calcula la media móvil de los valores de entrada.
La función usa redondeo hacia cero.
Trunca las posiciones decimales no significativas para el tipo de dato resultante.
Sintaxis
groupArrayMovingAvg(numbers_for_summing)
groupArrayMovingAvg(window_size)(numbers_for_summing)
Parámetros
window_size — Tamaño de la ventana de cálculo. Si no se especifica, la función toma un tamaño de ventana igual al número de filas de la columna. UInt64
Argumentos
numbers_for_summing — Expresión cuyo resultado es un valor de tipo de dato numérico. (U)Int* o Float* o Decimal
Valor devuelto
Devuelve un Array del mismo tamaño que los datos de entrada. Para entradas que no sean Decimal, el Array contiene valores Float64. Para entradas Decimal, el Array contiene valores Decimal con la misma escala que la entrada. Array
Ejemplos
Ejemplo de uso
CREATE TABLE t
(
`int` UInt8,
`float` Float32,
`dec` Decimal32(2)
)
ENGINE = Memory;
INSERT INTO t VALUES (1, 1.1, 1.10), (2, 2.2, 2.20), (4, 4.4, 4.40), (7, 7.77, 7.77);
SELECT
groupArrayMovingAvg(int) AS I,
groupArrayMovingAvg(float) AS F,
groupArrayMovingAvg(dec) AS D
FROM t;
┌─I────────────────────┬─F─────────────────────────────────────────────────────────────────────────────┬─D─────────────────────┐
│ [0.25,0.75,1.75,3.5] │ [0.2750000059604645,0.8250000178813934,1.9250000417232513,3.8675000369548798] │ [0.27,0.82,1.92,3.86] │
└──────────────────────┴───────────────────────────────────────────────────────────────────────────────┴───────────────────────┘
Con un tamaño de ventana
SELECT
groupArrayMovingAvg(2)(int) AS I,
groupArrayMovingAvg(2)(float) AS F,
groupArrayMovingAvg(2)(dec) AS D
FROM t;
┌─I───────────────┬─F───────────────────────────────────────────────────────────────────────────┬─D─────────────────────┐
│ [0.5,1.5,3,5.5] │ [0.550000011920929,1.6500000357627869,3.3000000715255737,6.085000038146973] │ [0.55,1.65,3.30,6.08] │
└─────────────────┴─────────────────────────────────────────────────────────────────────────────┴───────────────────────┘