当前位置: 首页 > 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)

在这里插入图片描述

http://www.dtcms.com/a/40655.html

相关文章:

  • 【北大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)
  • Hadoop完全分布式安装配置
  • Rider 安装包 绿色版 Win/Mac/Linux 适合.NET和游戏开发者使用 2025全栈开发终极指南:从零配置到企业级实战
  • 面向对象基础
  • 本地搭建dify结合ollama+deepseek方法详解
  • 2025最新智能优化算法:人工旅鼠算法(Artificial Lemming Algorithm, ALA)求解23个经典函数测试集,MATLAB
  • Spring原理
  • Android 布局系列(四):ConstraintLayout 使用指南
  • 毕业项目推荐:基于yolov8/yolo11的野生菌菇检测识别系统(python+卷积神经网络)
  • fastchat 支持llama3 harmbench PAIR攻击支持 llama3
  • SpringBoot + vue 管理系统