Есть ли функция для получения n-1 значения из следующей строки в Hive?

#hive #hiveql

#улей #hiveql

Вопрос:

Мне нужно получить значение date-1 в поле даты следующей строки. Нужен результат, аналогичный колонке «Ожидаемая дата».

введите описание изображения здесь

Я попробовал функцию запаздывания, но не получил ожидаемого результата.

Ответ №1:

Попробуйте использовать функцию hive lead . Функция Lead выдает вам значение даты в следующей строке. Как только вы получите следующую строку, используйте date_add или date_sub , чтобы вычесть 1 день.

 SELECT
Date,
coalesce(date_add(lead(Date,1) over(order by Date), -1),'9999-12-31') as expected_date
FROM
table
  

Наконец, вы можете использовать coalesce значение по умолчанию для конечной строки, равное 9999-12-31 для нулевой строки.

Комментарии:

1. Спасибо Ришу, я сделал это с помощью функции задержки.