总结了几个使用sql语言对电商业务的问题的提数思路。因为网上公开的数据难以获取,这里是取自公开出版书籍中的随书资源,过程在自己的workbench里进行实操,重在展示解决问题的语句的思路。
mysql 5.7.17
1.计算用户的次日、3日、7日留存情况
现在有一张用户登录表user_login,这张表记录了每个用户每次登录的时间,包含uid(用户ID)、login_time(登录时间)两个字段。我们想看用户的次日留存数、三日留存数、七日留存数(只要用户首次登录以后再登录就算留存下来了)
select
sum(case when 间隔日>=7 then 1 else 0 end )as '7日留存',
sum(case when 3<=间隔日<7 then 1 else 0 end )as '3日留存',
sum(case when 1<=间隔日<3 then 1 else 0 end )as '次日留存'
from(
select t1.uid,datediff(last_login,first) as '间隔日'
from
(select
uid
,date(min(login_time)) as 'first_login'
from
duibi.user_login
group by
uid)t1
left join
(select
uid
,date(max(login_time)) as 'last_login'
from
duibi.user_