Skip to main content

deltaSumTimestamp

Суммирует разницу между последовательными строками. Если разница отрицательна — она будет проигнорирована.

Эта функция предназначена в первую очередь для материализованных представлений, хранящих данные, упорядоченные по некоторому округленному временному интервалу, согласно timestamp, например, по бакету toStartOfMinute. Поскольку строки в таком материализованном представлении будут иметь одинаковый timestamp, их невозможно объединить в правильном порядке без хранения исходного, неокругленного значения timestamp. Функция deltaSumTimestamp отслеживает исходные timestamp наблюдаемых значений, поэтому значения (состояния) функции правильно вычисляются во время слияния кусков.

Чтобы вычислить разницу между упорядоченными последовательными строками, вы можете использовать функцию deltaSum вместо функции deltaSumTimestamp.

Синтаксис

deltaSumTimestamp(value, timestamp)

Аргументы

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

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

  • Накопленная разница между последовательными значениями, упорядоченными по параметру timestamp.

Тип: Integer, или Float, или Date, или DateTime.

Пример

Запрос:

SELECT deltaSumTimestamp(value, timestamp)
FROM (SELECT number AS timestamp, [0, 4, 8, 3, 0, 0, 0, 1, 3, 5][number] AS value FROM numbers(1, 10));

Результат:

┌─deltaSumTimestamp(value, timestamp)─┐
│ 13 │
└─────────────────────────────────────┘