Улей отслеживает изменения в столбце

#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. Спасибо, Гордон, это именно то, что я пытался сделать.