Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
688 views
in Technique[技术] by (71.8m points)

hive - I am trying to write a query but it is not working with lag function

I need to do partition on aa bb cc columns order by date and need results like if the difference is more than 60 days in consecutive rows. I tried with datediff(date,lag()) but not getting expected results.

see the expected results column

question from:https://stackoverflow.com/questions/65915825/i-am-trying-to-write-a-query-but-it-is-not-working-with-lag-function

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Assuming date is a datetime type column, you can use below code -
CASE when datediff(date,lag(Date, 1, 0) over (order by Date) ) >60 then 1 else 0 END diff_gt_60


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...