Passer au contenu principal

groupArrayMovingSum

Introduit dans : v20.1.0 Calcule la somme glissante des valeurs d’entrée. La fonction peut prendre la taille de la fenêtre en paramètre. Si elle n’est pas précisée, la fonction utilise une taille de fenêtre égale au nombre de lignes de la colonne. Syntaxe
groupArrayMovingSum(numbers_for_summing)
groupArrayMovingSum(window_size)(numbers_for_summing)
Paramètres
  • window_size — Taille de la fenêtre de calcul. S’il n’est pas spécifié, la fonction utilise une taille de fenêtre égale au nombre de lignes de la colonne. UInt64
Arguments
  • numbers_for_summing — Expression produisant une valeur de type de données numérique. (U)Int* ou Float* ou Decimal
Valeur renvoyée Renvoie un tableau de même taille et de même type que les données d’entrée. Array Exemples Exemple d’utilisation
Query
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
    groupArrayMovingSum(int) AS I,
    groupArrayMovingSum(float) AS F,
    groupArrayMovingSum(dec) AS D
FROM t;
Response
┌─I──────────┬─F───────────────────────────────┬─D──────────────────────┐
│ [1,3,7,14] │ [1.1,3.3000002,7.7000003,15.47] │ [1.10,3.30,7.70,15.47] │
└────────────┴─────────────────────────────────┴────────────────────────┘
Avec une taille de fenêtre
Query
SELECT
    groupArrayMovingSum(2)(int) AS I,
    groupArrayMovingSum(2)(float) AS F,
    groupArrayMovingSum(2)(dec) AS D
FROM t;
Response
┌─I──────────┬─F───────────────────────────────┬─D──────────────────────┐
│ [1,3,6,11] │ [1.1,3.3000002,6.6000004,12.17] │ [1.10,3.30,6.60,12.17] │
└────────────┴─────────────────────────────────┴────────────────────────┘
Dernière modification le 25 juin 2026