hive跟踪列中的更改

bsxbgnwa  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(327)

嗨,我一直在努力监测偏离原始值在一列在Hive。例如:

column 1  tracking_column
6          0
6          0
6          0
5          -1
6          0
6          0
7          1
8          2

我一直在使用滞后函数,但这似乎只允许我跟踪从一行到下一行的变化,并没有保持运行计数。所以当数字从6增加到7,然后再增加到8。我认为滞后或超前在这种情况下是行不通的。
谢谢你给我小费。干杯

blmhpbnm

blmhpbnm1#

我想你想要 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;

相关问题