【题目】
“用户活跃表”记录了用户的登录信息,包括用户标识、用户登录日期,以及是否是新用户(如果是新注册的用户值为1;如果是老用户,值为0)。
“领取红包表”里记录了用户领取红包的信息,包括抢红包日期、抢红包时间、用户ID、领取红包金额。
现在业务部门需要分析出以下问题:
1.计算2019年6月1日至今,每日DAU(活跃用户是指有登陆的用户)
2.分析每天领取红包的用户数、人均领取金额、人均领取次数,要考虑用户属性及领取红包未登录情况。
3.分析每个月按领红包取天数为1、2、3……30、31天区分,计算取每个月领取红包的用户数,人均领取金额,人均领取次数。
4.分析每个月领过红包用户和未领红包用户的数量
【分析思路】
1.计算2019年6月1日至今,每日DAU(活跃用户是指有登陆的用户)
每日DAU(有登陆的用户数)用到的表是“用户活跃表”。当出现“每天”要想到《猴子 从零学会sql》里讲过的分组汇总来解决这样的问题。
用“日期”来分组(group by),用count(用户ID)来汇总登录用户。
sql代码如下
select 登录日期,count(用户ID) as 活跃用户量DAU
from 活跃用户表
where 登录日期>20190601
group by 登录日期;
查询结果如下
2.分析每天领取红包的用户数、人均领取金额、人均领取次数