3

我正在计算客户保留率,并希望根据第一次、第二次、第三次等购买的行为来细分我的客户。

例如:

using first_value(had_coupon) over (partition by customer_id order by order_date DESC) 

我可以在首次购买效果保留中使用优惠券进行细分。

我试图弄清楚为第二次和第三次购买做同样的事情。使用 CASE 语句,我可以为没有购买两次、三次或更多次的客户提供另一个价值。

我一直在使用这个网站寻求帮助。

4

1 回答 1

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
于 2018-06-22T17:20:57.567 回答