قُدِّمت في: v20.1.0
تحسب المتوسط المتحرك لقيم الإدخال.
تستخدم الدالة التقريب باتجاه الصفر.
وتقتطع المنازل العشرية غير المهمة بالنسبة إلى نوع البيانات الناتج.
الصياغة
groupArrayMovingAvg(numbers_for_summing)
groupArrayMovingAvg(window_size)(numbers_for_summing)
المعلمات
window_size — حجم نافذة الحساب. إذا لم يتم تحديده، فستأخذ الدالة حجم نافذة مساويًا لعدد الصفوف في العمود. UInt64
الوسيطات
القيمة المُعادة
تُرجع مصفوفة بالحجم نفسه لبيانات الإدخال. إذا لم يكن الإدخال من النوع 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.30,6.08] │
└─────────────────┴─────────────────────────────────────────────────────────────────────────────┴───────────────────────┘