SQL问题:给了登陆表和购物表,求每日活跃人数和截止到当天活跃人数中未购买商品的人数以及比率(注意未购买用户如何判断)
登陆表中的用户id和购物表中的用户ID关联一下,left jion ,返回的结果数据中,购物表中的订单ID为空的那条数据,存放的就是未购物的用户信息
select 日期,count(distinct 用户id) 每日活跃人数 from 登录表 group by 日期
select count(distinct 用户id) 累计活跃人数 from 登录表 where 日期>=过去的某一天
select count(distinct 用户id) 未购买的人数 from 登陆表 where 日期>=过去的某一天 and not exists (select 1 from 购物表 where 登录表.用户id=购物表.用户id)
比例的话,除一下就是了
两个表不直接join的原因是,一个用户可能存在多次登陆记录,直接join会造成内存中的数据翻倍,可能会影响数据库中的其他业务,非得join的话,需要先把登陆表去个重,确保用户id唯一,再去join