#首选取出每个用户购买每类商品的首次日期 with first_buy as ( select user_id, series_id, min(date(pay_time)) as first_buy_date from t_order group by user_id, series_id ), #通过first_buy取出的首次购买日期与订单表中每一个订单的日期做差,即可得到每一单是首次购买还是首次购买之后x天购买的 retain_days as ( select o.user_id, o.series_id, f.first_buy_date, datediff(date(o.pay_t...