Я пытаюсь написать запрос, но он не работает с функцией задержки

#hive #hiveql

#улей #hiveql

Вопрос:

Мне нужно сделать разделение по порядку столбцов aa bb cc по дате и нужны результаты, например, если разница составляет более 60 дней в последовательных строках. Я попробовал с помощью datediff(date,lag()), но не получил ожидаемых результатов.

см. столбец ожидаемые результаты

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

1. Не могли бы вы показать запрос, который вы пробовали?

2. дата должна быть в сортируемом формате для заказа по: гггг-ММ-дд

Ответ №1:

Предполагая, что date — это столбец типа datetime, вы можете использовать приведенный ниже код —
CASE when datediff(date,lag(Date, 1, 0) over (order by Date) ) >60 then 1 else 0 END diff_gt_60