deltaSumTimestamp
Добавленный в: v21.6.0
Добавляет разницу между последовательными строками. Если разница отрицательная, она игнорируется.
Эта функция в первую очередь предназначена для materialized views, которые хранят данные, упорядоченные по временной метке, выровненной по границам бакета, например бакета toStartOfMinute.
Поскольку все строки в таком materialized view будут иметь одинаковую временную метку, их невозможно слить в правильном порядке без сохранения исходного, неокруглённого значения временной метки.
Функция deltaSumTimestamp отслеживает исходный timestamp уже обработанных значений, поэтому значения (состояния) функции корректно вычисляются при слиянии частей.
Чтобы вычислить сумму дельт по упорядоченному набору значений, можно просто использовать функцию deltaSum.
Синтаксис
deltaSumTimestamp(value, timestamp)Аргументы
value— Входные значения.(U)Int*илиFloat*илиDateилиDateTimetimestamp— Параметр, задающий порядок значений.(U)Int*илиFloat*илиDateилиDateTime
Возвращаемое значение
Возвращает накопленные разности между последовательными значениями, упорядоченными по параметру timestamp. (U)Int* или 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 │
└─────────────────────────────────────┘