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

deltaSumTimestamp

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

この関数は主に、toStartOfMinute バケットのような時間バケットに揃えたタイムスタンプでソートされたデータを保持するマテリアライズドビュー向けです。このようなマテリアライズドビューでは、行はすべて同じタイムスタンプを持つため、元の丸められていないタイムスタンプ値を保持していないと、正しい順序でマージすることはできません。deltaSumTimestamp 関数は、これまでに見た値の元の timestamp を追跡することで、パーツのマージ時に関数の値(状態)が正しく計算されるようにします。

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

構文

deltaSumTimestamp(value, timestamp)

引数

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

返される値

  • 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 │
└─────────────────────────────────────┘