Hive 如何从订单表中找到与后续客户ID相关的两个订单之间的日期范围?

Hive 如何从订单表中找到与后续客户ID相关的两个订单之间的日期范围?,hive,apache-spark-sql,hiveql,Hive,Apache Spark Sql,Hiveql,例如,假设我们有一位客户_id=1,他在2年内下了3个订单,他的 第一次订单日期=‘2015年1月1日’ 第二次订单日期为“2015年6月5日” 第三订单日期=‘2016年2月2日’ 这必须从他第一次下订单之日起每年计算一次 请告诉我如何在HiveQL中实现此场景。选择ord\u rnk\u 1.客户id、ord\u rnk\u 1.订单id作为第一个订单、ord\u rnk\u 2.订单id作为第二个订单、ord\u rnk\u 1.订单日期作为第一个订单日期、ord\u rnk\u 2.订单

例如,假设我们有一位客户_id=1,他在2年内下了3个订单,他的

第一次订单日期=‘2015年1月1日’
第二次订单日期为“2015年6月5日”
第三订单日期=‘2016年2月2日’

这必须从他第一次下订单之日起每年计算一次


请告诉我如何在HiveQL中实现此场景。

选择ord\u rnk\u 1.客户id、ord\u rnk\u 1.订单id作为第一个订单、ord\u rnk\u 2.订单id作为第二个订单、ord\u rnk\u 1.订单日期作为第一个订单日期、ord\u rnk\u 2.订单日期作为第二个订单日期, 案例 当nullif(ord\u rnk\u 2.订单id,0)=0时,则为“首次购买”
当datediff(ord_rnk_2.订单日期,ord_rnk_1.订单日期)计算时,需要准确计算什么?我需要按照上面的示例每年查找客户id和后续订单日期。最好提供输入和所需的输出数据示例。这将节省我们大量的时间。您需要找到第一、第二和第三个订单吗?还是约会范围?这不清楚,显示输出数据有点困难。但是我想要一个列,当同一个客户进行第二次购买或交易时,该列将被更新(当有重复交易时为True)。因此,基本上,这必须从他一年内第一次购买时开始。此外,今年不是从1月到12月的一年。必须对其进行修改,以使第一个订单日期和第三个订单日期之间的日期差在该范围内。请让我知道此代码是否可以进一步优化