ClickHouse/docs/ru/sql-reference/aggregate-functions/reference/deltasumtimestamp.md
2021-07-29 18:20:55 +03:00

2.9 KiB

toc_priority
141

deltaSumTimestamp

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

Эта функция предназначена в первую очередь для материализованных представлений, упорядоченных по некоторому временному бакету согласно timestamp, например, по бакету toStartOfMinute. Поскольку строки в таком материализованном представлении будут иметь одинаковый timestamp, невозможно объединить их в "правом" порядке. Функция отслеживает 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 │
└─────────────────────────────────────┘