一,字节-如何统计同一个用户在本店二次购买的比例
1,了解数据结构
了解有什么表
一般这种数据是会有一个用户购买信息明细表:存储用户id(member_id),购买时间,购买商品id,订单id(sheet_id)
2,怎么计算这个比例?
同一个用户二次购买的比例=购买两次以上的用户数/购买过的用户数
3,解题思路
1,先算出每个用户的购买次数
因为一个用户可能会一次购买多个商品,所以同一个订单号(sheet_id)会对应多个商品id,此时同一个sheet_id就会有多条记录,所以要对sheet_id进行去重。
select member_id,count(distinct sheet_id) cnt
from order_list
group by member_id
2,计算出每个购买次数有多少个用户
基于上面的字查询进一步分组
(select count(member_id),cnt
from
(select member_id,count(distinct sheet_id) cnt
from order_list
group by member_id) t1
group by cnt) t2
3,将count(member)进行条件分支成两个字段
select
count(case when count(member_id)>=2 then member_id else null end) cnt2,
count(case when count(member_id)<2 then member_id else null end) cnt3,
cnt2/cnt3
(select count(member_id),cnt
from
(select member_id,count(distinct sheet_id) cnt1
from order_list
group by member_id) t1
group by cnt1) t2