CDA持证人阿涛哥

2022-08-16   阅读量: 526

Mysql

shein面试题 查询每个月不同收货国家购买金额排名前300名的新用户信息,购买金额相同则排名相同(但排名不连续)。

扫码加入数据分析学习群

问题:

1

{)}LJQD_9XEID)KSM(7S46G.jpg

2

答案:

第2题:

select *
from
(select date_format(min(pay_dt),'%Y-%m') as 月份,country as 国家,'新用户' as 用户类型,user_id as 用户id,sum(pay_dt=首次购买时间) as 新用户订单数,sum((pay_dt=首次购买时间)*cost_amt) as 新用户订单金额,rank() over(partition by date_format(min(pay_dt),'%Y-%m'),country order by sum((pay_dt=首次购买时间)*cost_amt) desc) as 排名
from
(select *,min(pay_dt) over(partition by user_id) as 首次购买时间 from dw_shein_pay_order_da) as t1
group by country,user_id) as t2
where 排名<=300;


第3题:

select
date_format(首次购买时间,'%Y-%m') as 月份,
country as 国家,
count(distinct if(pay_dt=首次购买时间,user_id,null)) as 新用户数,
count(distinct if(timestampdiff(day,首次购买时间,pay_dt)<=30),user_id,null) as 30日复购用户数,
sum(if(timestampdiff(day,首次购买时间,pay_dt)<=30),pay_amt,null) as 30日复购金额,
count(distinct if(timestampdiff(day,首次购买时间,pay_dt)<=30),user_id,null)/count(distinct if(pay_dt=首次购买时间,user_id,null)) as 30日复购率
from
(select * ,min(pay_dt) over(partition by user_id) as 首次购买时间 from dw_shein_pay_order_da) as t
group by date_format(首次购买时间,'%Y-%m'),country;


0.0000 2 0 关注作者 收藏

评论(0)


暂无数据

推荐课程