当前位置: 首页 > news >正文

次日留存率——mysql计算过程

次日留存率——mysql计算过程

问题:有一张表,有用户id、用户浏览时间a_time,计算每天的用户数、以及次日留存率、三日留存率

创建表user()

CREATE TABLE user (id INT, a_time DATE );

插入 10 条随机数据

INSERT INTO user (id, a_time)
SELECT 
    FLOOR(RAND() * 100) + 1,  -- 生成 1 到 100 之间的随机整数作为用户 ID
    NOW() - INTERVAL FLOOR(RAND() * 30) DAY  -- 生成当前时间往前 30 天内的随机时间作为浏览时间
FROM 
    (SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL 
     SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL 
     SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10) AS numbers;

查看数据

select * from user order by id asc,a_time asc;

在这里插入图片描述

统计每天浏览的用户数

select a_time,count(distinct id) as 用户数
from user
group by a_time
order by a_time;

在这里插入图片描述

次日留存率

每个用户第一次浏览的时间表f 拼接 用户浏览时间表a 【ON f.id = a.id AND a.a_time = DATE_ADD(f.first_action_date, INTERVAL 1 DAY) -用户最先浏览的时间拼接他第二天浏览记录】
group by 第一次浏览时间,计数

SELECT 
    first_action_date,
    COUNT(DISTINCT f.id) AS total_users,
    COUNT(DISTINCT a.id) AS retained_users,
    COUNT(DISTINCT a.id) / COUNT(DISTINCT f.id) AS next_day_retention_rate
FROM 
    (
        SELECT 
            id,
            MIN(a_time) AS first_action_date
        FROM 
            user
        GROUP BY 
            id
    ) f
LEFT JOIN 
    user a ON f.id = a.id 
        AND a.a_time = DATE_ADD(f.first_action_date, INTERVAL 1 DAY)
GROUP BY 
    first_action_date;

在这里插入图片描述

三日留存率

同上,将1改3即可(往后推三天是否仍使用的用户)

DATE_ADD(f.first_action_date, INTERVAL 3 DAY)

在这里插入图片描述

相关文章:

  • 【北大Deepseck】最新2份pdf(附不限速链接) 系列-提示词工程和落地场景 DeepSeek与AIGC应用
  • 【FL0087】基于SSM和微信小程序的民宿短租系统
  • Qt之3D绘制曲线:QtDataVisualization实时绘制散点图
  • 网络原理--IP协议简介
  • Git简单操作
  • EasyRTC嵌入式WebRTC技术与AI大模型结合:从ICE框架优化到AI推理
  • java练习(45)
  • 惯导(机械编排)算法(INS Mechanization)_预备知识笔记
  • 大语言模型的评测
  • server.servlet.session.timeout: 12h(HTTP 会话的超时时间为 12 小时)
  • # C# 中堆(Heap)与栈(Stack)的区别
  • 一文掌握使用深度学习识别验证码详解(包括图形验证码和滑块验证码)
  • Delphi 12.3 函数指针(函数可以当参数)
  • 7.1 线性代数进行图像处理
  • 【博资考4】网安学院-硕转博考试内容
  • 判断奇数偶数
  • Composer如何通过GitHub Personal Access Token安装私有包:完整教程
  • next.js-学习3
  • 【Multipath网络层协议】MPTCP工作原理
  • 【项目管理】基于 C 语言的 QQ 聊天室实现(TCP + 多线程 + SQLite3)
  • 演员辛柏青发讣告,妻子朱媛媛去世
  • 体坛联播|王楚钦晋级男单16强,德布劳内曼城主场谢幕
  • 央行行长潘功胜主持召开金融支持实体经济座谈会
  • 事关政府信息公开,最高法发布最新司法解释
  • 甘肃省白银市一煤矿发生透水事故,3人失联
  • 两名游客刻划八达岭长城,被拘5日罚200元