首页 新闻 会员 周边

mysql数据库针对每日不同字段的统计需求问题,欢迎 Big牛们 评论

1
悬赏园豆:20 [已解决问题] 解决于 2018-12-26 17:46

本人因为sql很一般需求已用java代码解决,但十分好奇如何用sql解决这个问题。现在是三个表存储三种数据:

1.一个是注册的用户;
2.第二个是记录用户登录app的用户登录表(不累计,一个用户一天多次登录,有个记录登录次数的字段只统计1,每天至多有一个该用户数据);
3.最后一个和第二个差不多,只是会对登录次数递增;

需求一共有四个,只说一个最麻烦的吧,就是按一个以天为单位的日期范围,去查询以下数据:
1.总量:截至到天的注册总量;
2.当日新增的用户数量
3.次日留存率:昨日新增用户今日活跃数/昨日新增用户数
举例说明:假设 App 在1月3日的新增用户有100个,这100个用户在1月4日中启动应用的有55个,则1月3日的新增用户的次日留存率是55/100=55%

这个需求若是要纯用一个sql去实现应该怎么实现或是说一下思路也行,求big牛指教~~~

才小有的主页 才小有 | 菜鸟二级 | 园豆:232
提问于:2018-11-30 11:19
< >
分享
最佳答案
0

1.查询注册日期截止到昨天的用户数量

  select count(*) from Users where time < '时间'

2.用户表肯定要有记录注册时间的字段吧,查询昨天截止时间到今天截止时间内的用户数量便是新增用户数量。

  select count(*) from Users where time between '时间' and '时间'

3.根据你第二个表记录的登录次数就是用户启动应用的吧,第二个表中肯定要记录用户的ID吧,然后根据时间的条件,和登录用户的条件,利用子查询将第一个表中活跃的用户个数查询出来,在除以所有新增的用户个数就是了。

收获园豆:13
徒然喜欢你 | 小虾三级 |园豆:1741 | 2018-11-30 11:32

都能用一个sql求出来么,这些条件

才小有 | 园豆:232 (菜鸟二级) | 2018-12-03 09:24

@才小有: 可以的呀,前两个条件都是为第三个功能铺垫的

徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-12-03 09:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册