【发布时间】:2020-10-23 23:13:31
【问题描述】:
包含 3 列的表格:订单 ID、会员 ID、订单日期
需要拉取按天数b/w 2个连续订单按会员id细分的订单分布
我拥有的是这样的:
SELECT
a1.member_id,
count(distinct a1.order_id) as num_orders,
a1.order_date,
DATEDIFF(DAY, a1.order_date, a2.order_date) as days_since_last_order
from orders as a1
inner join orders as a2
on a2.member_id = a1.member_id+1;
这并没有完全帮助我,因为我需要的输出是:
【问题讨论】:
-
计算
num_orders的逻辑是什么?我不明白。 -
对不起,这是count()
-
这是什么逻辑?例如,对于客户
22222,对于订单1212和1215,您如何获得2,对于以下两个订单,您如何获得1? -
这是一个项目类型的 order_id。一个人可以订购 2 份相同的商品,例如 2 杯咖啡。咖啡的 Order_id 相同,例如:138 但 num_orders 为 2
-
但这不是强制性的,我要计算的是member_id的“自上次订单以来的天数”列
标签: sql datetime hive window-functions datediff