垂直 sql 增量

vertica sql delta

我想计算 2 条记录之间的增量值我的 table 有 2 列 ID 和时间戳我想计算记录之间的增量时间

    id  |timestamp |delta
----------------------------------
    1   |100       |0
    2   |101       |1 (101-100)
    3   |106       |5 (106-101)
    4   |107       |1 (107-106)

我使用 Vertica 数据库,我想在我的数据库上创建这个 table 的 view/projection。

是否可以在不使用 udf 函数的情况下创建此计算?

您可以将 lag() 用于此目的:

select id, timestamp,
       coalesce(timestamp - lag(timestamp) over (order by id), 0) as delta
from t;