SQL首单后第二天继续下单占比
订单信息表:order_info
字段:order_id user_id create_date total_amount
需求:从订单信息表,order_info 首次下单后,第二天连续下单占所有下单用户数比例 以百分位展示,保留一位小数
1 -- 排序取了一天,lead 取了后一天,看两个日期是否相减=1,是就是第二天又下单了,否则不是 2 -- 关联时,不加on 默认关联 3 4 select round(100*one.第二天连续下单人数 / two.所有下单用户,1) 第二天连续下单占比 from ( 5 6 select count(f.user_id) 第二天连续下单人数 from ( 7 8 select user_id,datediff(hou_one_day,first_day) diffdays 9 10 from ( 11 select a.user_id,a.create_date first_day,a.hou_one_day from ( 12 select user_id,create_date 13 ,row_number() over(partition by user_id order by create_date) day_num 14 ,lead(create_date,1,'9999-01-01') over(partition by user_id order by create_date) hou_one_day 15 from order_info 16 ) a where day_num = 1 17 ) al where diffdays = 1 18 ) f 19 ) one left join ( 20 select count(distinct user_id) 所有下单用户 from order_info 21 ) two 22 ;
浙公网安备 33010602011771号