Hive Track列中的更改

问题描述 投票:1回答:1

嗨,我一直在尝试监视蜂巢中列中原始值的偏差。例如:

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

我一直在使用滞后函数,但这似乎只允许我跟踪从一行到下一行的更改并且不保持运行计数。因此,当数字从6增加到7然后再增加到8.滞后或领先我不认为在这种情况下会起作用。

任何提示赞赏。干杯

sql hive hiveql impala
1个回答
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;
© www.soinside.com 2019 - 2024. All rights reserved.