ClickHouse/docs/ru/sql-reference/aggregate-functions/reference/exponentialmovingaverage.md

2.9 KiB
Raw Blame History

toc_priority
108

exponentialMovingAverage

Вычисляет экспоненциальное скользящее среднее.

Синтакис:

exponentialMovingAverage(x)(value, timestamp)

Каждой точке timestamp на временном отрезке соответствует определенное значение value. Период полу-распада — временной интервал х, в течение которого учитываются предыдущие значения. Функция возвращает взвешенное среднее: чем старше временная точка, тем c меньшим весом считается соответствующее ей значение.

Аргументы:

  • value - входные значения, должны быть типа Integer, Float или Decimal.
  • timestamp - параметр для упорядочивания значений, должен быть типа Integer.

Параметры

  • x - период полу-распада в секундах, должен быть типа Integer.

Возвращаемые значения:

  • Возвращает экспоненциальное скользящее среднее.

Тип: Float64.

Пример

Исходная таблица:

┌──temperature─┬─timestamp──┐
│          95  │         1  │
│          95  │         2  │
│          95  │         3  │
│          96  │         4  │
│          96  │         5  │
│          96  │         6  │
│          96  │         7  │
│          97  │         8  │
│          97  │         9  │
│          97  │        10  │
│          97  │        11  │
│          98  │        12  │
│          98  │        13  │
│          98  │        14  │
│          98  │        15  │
│          99  │        16  │
│          99  │        17  │
│          99  │        18  │
│         100  │        19  │
│         100  │        20  │
└──────────────┴────────────┘

Запрос:

exponentialMovingAverage(5)(temperature, timestamp)

Результат:

┌──exponentialMovingAverage(5)(temperature, timestamp)──┐
│                                    92.25779635374204  │
└───────────────────────────────────────────────────────┘