Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
758 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 Reply

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...