メインコンテンツへスキップ
メインコンテンツへスキップ

deltaSumTimestamp

連続する行同士の差分を加算します。差分が負の場合は無視されます。

この関数は主に、toStartOfMinute バケットのような、ある時間バケットに揃えた timestamp でソートされたデータを保存する materialized view 向けです。そのような materialized view 内の行はすべて同じ timestamp を持つため、元の丸め前の timestamp 値を保持しない限り、正しい順序でマージすることはできません。deltaSumTimestamp 関数は、これまでに見た値の元の timestamp を追跡することで、パーツのマージ中に関数の値(状態)が正しく計算されるようにします。

順序付けられたコレクションに対してデルタの合計を計算するには、単に deltaSum 関数を使用できます。

構文

deltaSumTimestamp(value, timestamp)

引数

  • value — 入力値。Integer 型、Float 型、Date、または DateTime のいずれかである必要があります。
  • timestamp — 値を順序付けするためのパラメータ。Integer 型、Float 型、Date、または DateTime のいずれかである必要があります。

返される値

  • timestamp パラメータで指定された順序で並んだ、連続する値同士の差分の累積。

型: IntegerFloatDate、または 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 │
└─────────────────────────────────────┘