#sql #hive #hiveql #impala
#sql #улей #hiveql #impala
Вопрос:
Привет, я пытался отслеживать расхождение с исходным значением в столбце в hive. Например:
column 1 tracking_column
6 0
6 0
6 0
5 -1
6 0
6 0
7 1
8 2
Я использовал функцию задержки, однако, похоже, это позволяет мне отслеживать изменения только от одной строки к следующей и не ведет текущий подсчет. Итак, когда число увеличивается с 6 до 7, а затем до 8. задержка или опережение, я не думаю, что в этом случае сработает.
Любые советы приветствуются. Приветствия
Ответ №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;
Комментарии:
1. Спасибо, Гордон, это именно то, что я пытался сделать.