题解 | #10月的新户客单价和获客成本#

10月的新户客单价和获客成本

https://www.nowcoder.com/practice/d15ee0798e884f829ae8bd27e10f0d64

with xinyonghu as(
  select
    distinct order_id xyh_order_id
  from
(
      select
        *,
        min(event_time) over (partition by uid) zuizao_time
      from
        tb_order_overall
    ) temp
  where
    zuizao_time between '2021-10-01 00:00:00' and '2021-10-31 23:59:59'
),shoudan as(
    select *
    from(
    select
    *,ROW_NUMBER() over (partition by uid order by event_time) xiadan_rank
    from
    (
        select *
        from tb_order_overall
        where event_time between '2021-10-01 00:00:00' and '2021-10-31 23:59:59'
    ) temp1)temp2
where xiadan_rank=1
),dingdan as(
    select order_id,sum(price*cnt) zongjine
    from tb_order_detail
    group by order_id
) select round(avg(total_amount),1),
round(avg(zongjine-total_amount),1)
from  shoudan 
left join xinyonghu on shoudan.order_id=xinyonghu.xyh_order_id
left join dingdan on shoudan.order_id = dingdan.order_id
where xinyonghu.xyh_order_id is not null

设置三个全局表

1、筛选出题目条件下的新用户的表 t1

2、筛选出当月首单表(不区分是否新用户)t2

3、订单原价表(为了后面算出优惠金额)t3

计算题目指标

1、合并

以首单表作为主表(即以订单为最小粒度),以订单号左拼接表1,(后面只保留 is not null 的行)

再拼接订单原价表,以订单号作为连接值

2、计算

直接avg函数即可(以为一客仅会出现当月的一首单,所以单=客数)

注意round函数保留一位小数。

全部评论

相关推荐

11-27 12:43
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-26 22:34
已编辑
重庆邮电大学 Java
快手 客户端开发 (n+5)k*16 公积金12
牛客895077908号:佬 什么双非硕啊
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务