我正在计算客户保留率,并希望根据第一次,第二次,第三次和类似购买中的行为对客户进行细分。
例如:
using first_value(had_coupon) over (partition by customer_id order by order_date DESC)
我可以在首次购买效果保留中使用优惠券进行细分。
我正在尝试为第二次和第三次购买做同样的事情。 使用CASE语句,我可以为没有两次,三次或更多次购买的客户提供另一个价值。
我一直在使用this site寻求帮助。
答案 0 :(得分:0)
使用row_number()
通过使用max()
或min()
的聚合来标记第一,第二,第三等+分组,以按客户/等分组行:
select max(case when rn=1 then had_coupon end) first_order_had_coupon,
max(case when rn=2 then had_coupon end) second_order_had_coupon,
-- and so on
--other group columns
from
(
select had_coupon,
--other columns
row_number() over (partition by customer_id order by order_date DESC) rn
from table
)s
group by group columns