嗨,我一直在尝试监视配置单元中某列与原始值的差异。例如:
column 1 tracking_column
6 0
6 0
6 0
5 -1
6 0
6 0
7 1
8 2
我一直在使用lag函数,但是这似乎只允许我跟踪从一行到下一行的更改,并且无法保持运行计数。因此,当数字从6上升到7,然后上升到8。滞后或超前,我认为在这种情况下不起作用。
任何提示都值得赞赏。干杯
答案 0 :(得分:1)
我认为您想要first_value()
:
select col1, (first_value(col1) over (order by ?) - col1) as diff
from t;
?
是指定表顺序的列的占位符。
您也可以使用cross join
:
select t.col1, (t.col1 - t1.col1) as diff
from t cross join
(select t.*
from t
order by ?
limit 1
) t1;