计算用户的周留存率,求高效MYSQL查询语句,我想不出什么好办法,导致一个页面几十条SQL查询

huang798807481 2013-01-08 02:26:27
需求:
用户留存可以告诉您用户的忠诚度有多高。用户在某段时间内开始使用应用,经过一段时间后,仍然继续使用应用的被认作是留存用户;这部分用户占当时新增用户的比例即是留存率,统计周,月留存率
效果如下:
...全文
1647 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
k0759 2014-04-23
  • 打赏
  • 举报
回复
一天新增用户1000个,一个工作周有7000个新增用戸。每天的次日我登录35%,245个,第3天到8天在次日登录用户里抽取总数的20%,140个。请问周留存有%几
ACMAIN_CHM 2014-02-10
  • 打赏
  • 举报
回复
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382 1. 你的 create table xxx .. 语句 2. 你的 insert into xxx ... 语句 3. 结果是什么样,(并给以简单的算法描述) 4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
ayzen1988 2014-02-10
  • 打赏
  • 举报
回复
我的留存是这样设计的 用户id 首次登录或使用时间 dru1 dru3 dru7 首次登录或使用时间 时间戳或日期格式都行,个人喜好; dru1 dru3 dru7 tinyint类型 default 0,表示次日、三日、七日是否有登录; 例如:用户id为100的用户 首次登录时间 2014-02-01; 记录如下: 100 2014-02-01 0 0 0 当id为100的用户在次日即2014-02-02有登录时记录修改为如下: 100 2014-02-01 1 0 0 相对于首次登录时间的那一天有登录,即修改对应字段为1; 统计数据 count(*) 总人数,sum(dru1)次日登录人数,sum(dru3)三日登录人数,sum(dru7)七日登录人数 group 首次登录时间 1.其中登录时候的写入逻辑需要优化、我是把数据写入内存处理的、不然并发上来数据库抗不住; 2.只需把对应的次日改成你对应的1周、2周,逻辑思路是一样的; 希望对你有帮助
chailijia 2014-02-09
  • 打赏
  • 举报
回复
123456
chailijia 2014-02-09
  • 打赏
  • 举报
回复
lzglololo 2013-11-07
  • 打赏
  • 举报
回复
楼主你的临时表的字段都是怎么设计的
xx8910880 2013-07-15
  • 打赏
  • 举报
回复
我也遇到这个问题了,统计留存,能告诉我你是怎么解决的么 谢谢了 如果有实例就更好了 QQ:519605273
xuzuning 2013-05-05
  • 打赏
  • 举报
回复
不知道你的数据是如何组织的 我以为最少需要有两个字段:最初使用时间和最后使用时间 那么 分组键为 DATE_FORMAT(最初使用时间,'%x%v') 主栏为 DATE_FORMAT(最初使用时间,'%x%v') 宾栏为 sum(if(DATE_FORMAT(最后使用时间,'%x%v')-主栏=0,1,0)) as `新用户`, sum(if(DATE_FORMAT(最后使用时间,'%x%v')-主栏>=1,1,0)) as `1周后`, sum(if(DATE_FORMAT(最后使用时间,'%x%v')-主栏>=2,1,0)) as `2周后`, ..... 依次类推
huang798807481 2013-05-05
  • 打赏
  • 举报
回复
我是把数据库里的表查出来的数据,都放到一张临时表中
似梦飞花 2013-04-27
  • 打赏
  • 举报
回复
这个貌似得看你数据库怎么设置的了吧?
fengmingyisheng 2013-04-27
  • 打赏
  • 举报
回复
兄弟你解决了没?我现在也需要写这种东西呢 如果解决了 是否可以教教我呢?

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧