Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

groupArrayMovingAvg

groupArrayMovingAvg

قُدِّمت في: v20.1.0

تحسب المتوسط المتحرك لقيم الإدخال.

الصياغة

groupArrayMovingAvg(numbers_for_summing)
groupArrayMovingAvg(window_size)(numbers_for_summing)

المعلمات

  • window_size — حجم نافذة الحساب. إذا لم يتم تحديده، فستأخذ الدالة حجم نافذة مساويًا لعدد الصفوف في العمود. UInt64

الوسيطات

  • numbers_for_summing — تعبير يُنتج قيمة من نوع بيانات رقمي. (U)Int* أو Float* أو Decimal

القيمة المُعادة

تُرجع مصفوفة بالحجم نفسه لبيانات الإدخال. إذا لم يكن الإدخال من النوع Decimal، فستحتوي المصفوفة على قيم Float64. أما إذا كان الإدخال من النوع Decimal، فستحتوي المصفوفة على قيم Decimal بمقياس الإدخال. Array

أمثلة

مثال على الاستخدام

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] │
└──────────────────────┴───────────────────────────────────────────────────────────────────────────────┴───────────────────────┘

مع تحديد حجم النافذة

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.3,6.08] │
└─────────────────┴─────────────────────────────────────────────────────────────────────────────┴──────────────────────┘
Navigation