#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. Спасибо Ришу, я сделал это с помощью функции задержки.